能帮我看下这个代码吗?

能帮我看下这个代码吗?

我这样写对了,我试了下,没有啥啊错误,但是如果继续添加的时候,后面的会把前面的信息盖掉

public void addGoodsToCart(GoodsManage gm) {

int num = 0;

boolean flag = true;

while (flag) {

gm.displayAll();

Iterator<Goods> it = gm.getGoodsSet().iterator();

String goodsId = null;

Goods goods = null;

System.out.println("请输入要添加的商品编码:");

goodsId = sc.next();

while (it.hasNext()) {

for (int i = 0; i < 3; i++) {

goods = (Goods) it.next();

this.goodcart.setGoods(goods);

if(goodsId.equals(goods.getId())){

shopCart.put(goods.getId(), goodcart);

this.setShopCart(shopCart);

flag = false;

break;

}

}

System.out.println("请输入要添加的商品数量:");

num = sc.nextInt();

this.goodcart.setNum(num);

break;

}

Set<Entry<String, GoodsInCart>> entrySet = shopCart.entrySet();

for (Entry<String, GoodsInCart> entry : entrySet) {

System.out.println(entry.getValue().getGoods());

System.out.println("商品数量" + entry.getValue().getNum());

}

}

}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

this.goodcart.setGoods(goods);不用这个代码,创建一个新的GoodsInCart类的对象GoodsInCart gic=new GoodsInCart(),然后调用set方法设置商品信息和数量。或者获取到商品信息和数量后,使用GoodsInCart的带参构造方法创建对象。如果还是不行,可以贴一下所有代码便于排查错误信息。祝学习愉快!

  • ayingga 提问者 #1
    非常感谢!
    2017-09-19 15:53:46
提问者 ayingga 2017-09-18 22:43:52

用了您说的方法,问题解决了,但我不太明白我之前的代码不知道错的原因是什么?为什么按您的方法就出来了,您能给我讲一下吗,谢谢

  • this.goodcart.setGoods(goods);这样的话,是对一个对象进行的操作,所以会覆盖原来的信息,应该创建新对象进行操作。祝学习愉快~
    2017-09-19 10:38:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师