锁定老帖子 主题:请教一个关于List对象的细节问题。
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-22
我昨天在DAOImpl中写了个方法想取回一个List对象 FileItem item=new FileItem(); while(rs.next()==true){ item.setF_id(rs.getInt("f_id")); item.setF_name(rs.getString("f_name")); item.setF_path(rs.getString("f_path")); item.setF_size(rs.getFloat("f_size")); item.setF_softname(rs.getString("f_softname")); li.add(item); ... ...} 然后把List实例化后打出里面的内容 <% FileItem item=new FileItem(); for(Iterator it=li.iterator();it.hasNext();){ item=(FileItem)it.next(); %> <%=item.getF_name()%> <% }%> 每次循环打出的都是数据库中的最后一条记录,没打出前面的。 后来我发现DAOImple 的 FileItem item=new FileItem(); 语句放到while循环里面 问题就解决了 ~~ 请问这是为什么呢?? 希望解惑。 谢谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-22
很初级的问题,你每次修改的和放入列表的对象都是同一个对象,所以最后列表里放的全是同一个对象。
你后来修改了以后,每次修改和放入列表的对象都是一个新对象了,所以结果正确了。 |
|
返回顶楼 | |
发表时间:2007-03-22
但是我觉得 虽然是同一个对象,但是每次会被覆盖啊??
每一次都 被 add 到 List中去了,然后才被覆盖的啊? 照理来说 List中应该有所有的查询结果啊?? 呵呵~我是初学者,谢谢耐心解答啊~~ 谢谢~~ |
|
返回顶楼 | |
发表时间:2007-03-22
java中基础的基础
放进去的是指针 以后改的还是这个对象 java中几乎所有的操作都是指针操作 |
|
返回顶楼 | |
发表时间:2007-03-22
-_-
具体怎么翻译还真就没注意过 反我刚学的时候 感觉如果叫他指针我理解得更方便.......于是乎......... |
|
返回顶楼 | |
发表时间:2007-03-22
小声说一下.....从没学过C++的说
墙角去了............. |
|
返回顶楼 | |
发表时间:2007-03-22
大体上明白你的意思
C++的指针是能自由控制的 随意可以指定他指到内存的什么地方 JAVA这个我把他翻译成 所有的全是自动完成的 所有不会像C+那么自由 也不会像那个那么容易成为诟病 也P。S:我在上海啊 你又不过来 等你到北京的时候 然后如果可能我也去北京的时候吧 再P。SP。S:老刑和QMM还没放出实际数字呢 或许是我的饭才对呢 |
|
返回顶楼 | |
发表时间:2007-03-22
前阵子几乎一个月跑一躺北京 春节就是在北京过的
不过 不知道下次是啥时候再去了 |
|
返回顶楼 | |
发表时间:2007-03-22
ddandyy 写道 前阵子几乎一个月跑一躺北京 春节就是在北京过的
跑北京也不打个招乎....
不过 不知道下次是啥时候再去了 PS: 每个javaer 用list都会出的错.... 太精典了...以至于...... |
|
返回顶楼 | |
发表时间:2007-03-22
引用同一块内存地址
|
|
返回顶楼 | |