items.getProductId() 返回得是一个int 类型

解决方案 »

  1.   

    public class Car {
    List<CartItem> car = new ArrayList<CartItem>(); public List<CartItem> getCar() {
    return car;
    } public void setCar(List<CartItem> car) {
    this.car = car;
    }
    public void add(CartItem item){
    for(int i = 0;i<car.size();i++){
    CartItem items = (CartItem)car.get(i);
    if(items.getProductId() == item.getProductId()){
                   //item.setCount(item.getCount()+1);
    items.setCount(items.getCount()+1);
    return;
    }

    }
    car.add(item);
    }}
      

  2.   

    item和items不是指同一个对象,items是你在调用方法add方法之前新创建的一个对象,应该是当用户点击添加的时候new了一个cartItem对象。与list中的对象并不是同一个,只是都封装了同样的一个product对象,而你比较的是productid,当然一样的了,
    我觉得你add方法中应该两个参数,一个是productid,另一个count,如果productid对应的product在list中已经有了,就items.setCount(items.getCount()+1); 如果没有才新创建一个cartitem,然后添加都list中去。
    个人建议!