J'écris un site Web en utilisant JSP, JSTL, Servlets et JavaBeans. À un point de mon code, j'essaie d'utiliser une ArrayList d'objets, et une chose étrange se produit: quand j'ajoute le premier objet, c'est bien, et quand j'ajoute un second objet, il l'ajoute dans le deuxième place, mais l'objet à l'index (0) obtient les mêmes valeurs que l'objet à l'index (1).Comportement étrange de ArrayList
Peut-être un problème est dans le
ArrayList<Article> articleList = new ArrayList<Article>();
Article newArticle = new Article();
Depuis articlelist est ArrayList de l'article classe. Est-ce que quelqu'un peut me signaler ce que je fais mal?
est mon code ci-dessous:
public ArrayList<Article> getArticles()
{
baseIO mySql = new baseIO();
ArrayList<Article> articleList = new ArrayList<Article>();
int articleId = 0;
try
{
String sql =
"select * from jsp_blog_article order by article_id Desc Limit 3";
con = (Connection)mySql.getConnection();
pstmt = (PreparedStatement) con.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Article newArticle = new Article();
newArticle.setArticleAuthor(rs.getString("article_name"));
newArticle.setArticleBody(rs.getString("article_body"));
newArticle.setArticleAuthor(rs.getString("article_author"));
newArticle.setArticleDate(rs.getString("article_date"));
articleId = Integer.parseInt(rs.getString("article_id"));
newArticle.setArticleId(String.valueOf(articleId));
newArticle.setArticleComments(this.getCommentsNum(articleId));
articleList.add(newArticle);
}
con.close();
pstmt.close();
}
catch(Exception e)
{
return null;
}
return articleList;
}
Et l'article classe
package objects;
import java.io.Serializable;
public class Article implements Serializable{
private String articleName;
private String articleBody;
private String articleAuthor;
private String articleComments;
private String articleDate;
private String articleId;
public Article()
{
}
// all the getters and setters in place, but it is too long
// so i am not going to post them in forum
}
Une raison particulière pour laquelle vous commencez par analyser articleId et ensuite le convertir immédiatement en chaîne? –
Avez-vous copié et collé la méthode getArticles(), ou votre code réel est-il légèrement différent? Parce qu'il ne devrait pas y avoir de différence fonctionnelle entre votre code et le code de Soldier.moth. Vous créez un nouvel objet article à chaque fois, comme il est. –
Je suis en fait curieux à ce sujet aussi, parce qu'en regardant en arrière je ne suis pas sûr pourquoi mon code a fonctionné où le vôtre n'a pas fait. –