java中List<E>的get(index)用法

publicvoidsetTbEmailPop3Smtp(IntegerId,intuser){List<TbEmailPop3Smtp>listfind=daos.ge... public void setTbEmailPop3Smtp(Integer Id ,int user) {

List<TbEmailPop3Smtp> listfind = daos.getDbFindDAO().findbytbemailpop3smtp(
"from TbEmailPop3Smtp a where a.tbUser="+user);
int i,j=listfind.size();
for(i=0;i<j;i++)
{TbEmailPop3Smtp invent = (TbEmailPop3Smtp) listfind.get(i);
if(invent.getPkid()==Id)
{
invent.setIsuse(1);
}else invent.setIsuse(0);
daos.getDbEditDAO().edit(invent);
System.out.print("shit");

}
我这段代码的意思大概是这样的,用一个for循环把List<TbEmailPop3Smtp>
中的数据和id比较,然后相等的吧其中一个属性Isuse设为1,其他的设为0
但是运行了结果好像不能改变,是不是get(i)不能这么用?其他的地方我确定没错……
是把pikid和id相等的object的一个属性isuse设为1
我吧System.out.print("shit");放在invent.setIsuse(1);上面可以读到

呵呵,忘了告诉大家乐,这个代码没错,是软件运行模式错了,重登就可以了
展开
 我来答
198901245631
推荐于2017-09-26 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1745万
展开全部
get(index)就是获取到List对象中下标为“index”的值。
解释:
List对象通过泛型的形式先定义一个对象类型,之后只需要通过add方法增加对象,之后通过get方法获取到对象的值的形式来灵活的实现参数传递。
举例:
List<E> list = new ArrayList<E>();//定义一个list的泛型

list.add((E)"StringBatch");//给list增加字符串对象,实际上已经强制转换为“E”类型
list.get(0);//获取到对象的第一个存储值。
备注:如果获取的”index“值不存在,就会报错数组越界,所以开发过程中一定多加注意。
shenwenchao1
2009-09-14 · TA获得超过1586个赞
知道小有建树答主
回答量:949
采纳率:100%
帮助的人:0
展开全部
TbEmailPop3Smtp invent = (TbEmailPop3Smtp) listfind.get(i);
在这个地方的后面加上System.out.println(invent.getPkid());作跟踪调查,看看输出什么,就知道get(i)有没有用了。

daos.getDbEditDAO().edit(invent);
还有这里是把更改的数据存起来吗?
如果不是,那你需要加一个存到数据库里面的步骤。因为你变的list的值,是放在内存里面的,想查还是查不到的。

如果是将list存起来,那就多作跟踪语句,就可以判断。我遇到问题经常这样处理的哈。

祝你调试程序成功。由于代码不详细,只能说到这里。因为我看这段代码也没问题。get(i)就是你写的那样的用法

楼上的,你搞错了吧? list能操作对象的属性?
LZ有问题的话,百度继续M我

参考资料: 如果您的回答是从其他地方引用,请表明出处

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友97a4072c2
推荐于2017-09-24 · TA获得超过162个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:0
展开全部
List<E>的get(index)拿出来的是List里面元素的reference,这点你用的没有错,调用这个reference的方法将直接作用到List里面的元素(实例)上去。
建议你step in调试这个方法,看看invent.setIsuse(1);有没有得到执行。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wujiazhao1988
2009-09-14 · TA获得超过413个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:305万
展开全部
用JDK1.5以后的那个for循环来搞不就行了,不用用到get方法

for(TbEmailPop3Smtp invent:listFind){
if(invent.getPkid()==Id)
{
invent.setIsuse(1);
}else invent.setIsuse(0);
daos.getDbEditDAO().edit(invent);
System.out.print("shit");
}
试一下这段看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
O_Game_Over_O
2009-09-14 · TA获得超过346个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:648万
展开全部
你调错对象了.

你set 的对象应该是listfind
而不是你新建的对象invent
............................
你可以读到是因为你那是访问的是invent
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式