当前位置: 代码迷 >> Java Web开发 >> [求解] 遍历添加对象到List集合?该怎么解决
  详细解决方案

[求解] 遍历添加对象到List集合?该怎么解决

热度:782   发布时间:2016-04-16 22:09:50.0
[求解] 遍历添加对象到List集合?
下面这段代码循环赋值不成功, votes集合里面的所有对象都是同一个, 这是怎么回事? 如何解决



PreparedStatement psmt;
try {
psmt = (PreparedStatement) conn.prepareStatement(sql);
ResultSet rs = psmt.executeQuery();
while(rs.next()){
vote.setPid(rs.getInt("pid"));
vote.setSid(rs.getInt("sid"));
vote.setVoteDate(rs.getDate("voteDate"));
vote.setVoteIP(rs.getString("voteIP"));
votes.add(vote);
}
//for testing
for(int i=0; i<votes.size(); i++){
System.out.println(votes.get(i));
}



以上代码显示的结果是:

------解决方案--------------------
你用while遍历的时候先new一个vote,否则一直是同一个对象。

------解决方案--------------------
引用:
你用while遍历的时候先new一个vote,否则一直是同一个对象。
正解
------解决方案--------------------
vote 在内存中地址没变,当然是同一个对象了。需要在while中new
------解决方案--------------------
楼上正解~~

------解决方案--------------------
 while(rs.next()){
               vote=new vote();
                vote.setPid(rs.getInt("pid"));
                vote.setSid(rs.getInt("sid"));
                vote.setVoteDate(rs.getDate("voteDate"));
                vote.setVoteIP(rs.getString("voteIP"));
                <span style="color: #FF0000;">votes.add(vote);</span>
            }
------解决方案--------------------
进一次循环就要new一个新对象
  相关解决方案