论坛首页 入门技术论坛

请教一个关于List对象的细节问题。

浏览 4569 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-03-22  
DAO
由于本人第一次用java开发项目,所以总被一些小问题所困惑。
我昨天在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循环里面 问题就解决了 ~~
请问这是为什么呢??
希望解惑。

谢谢!
   发表时间:2007-03-22  
很初级的问题,你每次修改的和放入列表的对象都是同一个对象,所以最后列表里放的全是同一个对象。
你后来修改了以后,每次修改和放入列表的对象都是一个新对象了,所以结果正确了。
0 请登录后投票
   发表时间:2007-03-22  
但是我觉得 虽然是同一个对象,但是每次会被覆盖啊??
每一次都 被 add 到 List中去了,然后才被覆盖的啊?
照理来说 List中应该有所有的查询结果啊??


呵呵~我是初学者,谢谢耐心解答啊~~
谢谢~~
0 请登录后投票
   发表时间:2007-03-22  
java中基础的基础
放进去的是指针 以后改的还是这个对象
java中几乎所有的操作都是指针操作
0 请登录后投票
   发表时间:2007-03-22  
-_-

具体怎么翻译还真就没注意过

反我刚学的时候 感觉如果叫他指针我理解得更方便.......于是乎.........
0 请登录后投票
   发表时间:2007-03-22  
小声说一下.....从没学过C++的说

墙角去了.............
0 请登录后投票
   发表时间:2007-03-22  
大体上明白你的意思
C++的指针是能自由控制的 随意可以指定他指到内存的什么地方 
JAVA这个我把他翻译成 所有的全是自动完成的 所有不会像C+那么自由 也不会像那个那么容易成为诟病

也P。S:我在上海啊 你又不过来  等你到北京的时候 然后如果可能我也去北京的时候吧

再P。SP。S:老刑和QMM还没放出实际数字呢  或许是我的饭才对呢
0 请登录后投票
   发表时间:2007-03-22  
前阵子几乎一个月跑一躺北京 春节就是在北京过的
不过 不知道下次是啥时候再去了
0 请登录后投票
   发表时间:2007-03-22  
ddandyy 写道
前阵子几乎一个月跑一躺北京 春节就是在北京过的
不过 不知道下次是啥时候再去了
跑北京也不打个招乎....
PS: 每个javaer 用list都会出的错....
太精典了...以至于......
0 请登录后投票
   发表时间:2007-03-22  
引用同一块内存地址
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics