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得到的 调用上面的方法
这样就覆盖了!!! 展开
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得到的 调用上面的方法
这样就覆盖了!!! 展开
2个回答
展开全部
List<T>只是一个口,具体实现是由具体的类决定的。具体原因要看你用的类是什么了。如果是自己写的类,可能在add实现时有什么处理,这都是有可能的。
如果有可能,请补充的更充分一些。
===============================
不知道是不是和没有setAttribute有关,session是序列化后的对像,getAttribute好像是要重新建一个吧。如果不set好像不行。反正我这种情况都会setAttribute一下,因为至少不会错。
如果不是这个问题,我也看不出来哪里错了。
如果有可能,请补充的更充分一些。
===============================
不知道是不是和没有setAttribute有关,session是序列化后的对像,getAttribute好像是要重新建一个吧。如果不set好像不行。反正我这种情况都会setAttribute一下,因为至少不会错。
如果不是这个问题,我也看不出来哪里错了。
展开全部
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);
}
}
结果对着呢。。。补充一下你的问题吧 。。
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);
}
}
结果对着呢。。。补充一下你的问题吧 。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询