List <T> add 为什么总覆盖原来Item 内容

这就是我的代码publicclassCart{/*创建购物项列表*/List<CartItem>items=newArrayList<CartItem>();/*获取列表... 这就是我的代码
public class Cart {
/*创建购物项列表*/
List<CartItem> items = new ArrayList<CartItem>();
/*获取列表的Get方法*/
public List<CartItem> getItems() {
return items;
}
/*获取列表的Set方法*/
public void setItems(List<CartItem> items) {
this.items = items;
}

* 向购物车添加购物项

public void add(CartItem ci) {
items.add(ci);
}

然后
/*获取jsp中购物车*/
c = (Cart) session.getAttribute("cart");
/*创建一个商品购物项*/
CartItem ci=new CartItem();
/*将对应商品添加至购物项*/
ci.setViewGoods(viewGoods);//viewGoods是对应商品
/*将购物项添加至购物车*/
c.add(ci);//c是Cart类的一个实例 根据Session得到的 调用上面的方法

这样就覆盖了!!!
展开
 我来答
ratstar
2010-12-10 · TA获得超过496个赞
知道小有建树答主
回答量:648
采纳率:0%
帮助的人:593万
展开全部
List<T>只是一个口,具体实现是由具体的类决定的。具体原因要看你用的类是什么了。如果是自己写的类,可能在add实现时有什么处理,这都是有可能的。
如果有可能,请补充的更充分一些。
===============================
不知道是不是和没有setAttribute有关,session是序列化后的对像,getAttribute好像是要重新建一个吧。如果不set好像不行。反正我这种情况都会setAttribute一下,因为至少不会错。
如果不是这个问题,我也看不出来哪里错了。
百度网友0583ac2ea
2010-12-10 · TA获得超过957个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:215万
展开全部
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(new Integer(20));
list.add(new Integer(20));
list.add(new Integer(20));
list.add(new Integer(20));
list.add(new Integer(20));

for (Integer i:list){
System.out.println(i);
}
}

结果对着呢。。。补充一下你的问题吧 。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式