关于添加商品进购物车,同样的商品不能叠加的问题
老师在前面已经在Cart.java中的main方法测试过购物车类的同类商品叠加放入购物车问题。
貌似已经完美的解决,所以老师在这一章完美应用到了视图层展示出来。可是我们老是发现
我们的视图层的显示似乎没有测试的时候那么顺利。所以才有了我这两小时的debug之旅,好了
长话短说。
首先解决重复的问题肯定是HaspMap的containsKey来解决的,原理老师已经讲了
但是经过调试我发现在equal方法中,商品名称不能通过相等判断。老师用的是==
我换成了equals()方法,然后就ok了。
Item.java中重写equals方法
/** * 重写判等方法 */ @Override public boolean equals(Object obj) { if(this==obj){ return true; } if(obj instanceof Item) { if( (((Item)obj).getName()).equals(this.getName()) && ((Item)obj).getId()==this.getId()) { return true; }else { return false; } } else{ return false; } }
藏得很深的bug,代码全都过了一遍,一步一步找出来了,感觉没白费力气。
希望可以帮到你们