麻烦老师帮忙看看添加购物车为什么空指针

麻烦老师帮忙看看添加购物车为什么空指针

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class ShoppingCart { //购物车类
   private Map<String,GoodsInCart> shoppingCart;  
   public ShoppingCart(){} 
   public ShoppingCart(Map<String,GoodsInCart> shoppingCart){
       this.setShoppingCart(shoppingCart);
   }
   public Map<String, GoodsInCart> getShoppingCart() {
    return shoppingCart;
   }
   public void setShoppingCart(Map<String, GoodsInCart> shoppingCart) {
    this.shoppingCart = shoppingCart;
   }
   Map<String, GoodsInCart> map = new HashMap();
   Scanner aa=new Scanner(System.in);
   public void addGoodsToCart(GoodsManage gm){  //添加商品到购物车
       gm.displayAllGoods();
       Set<Goods> goods=gm.getGoods();
       System.out.println("请输入要添加的商品编号");
       String str=aa.next();
       boolean flag=true;
           for(Goods g:goods){
           if(str.equals(g.getGoodsId())){
              flag=true;                 
       System.out.println("请输入要添加的商品数量");
       int num=aa.nextInt();
       GoodsInCart goodsInCart = new GoodsInCart(g, num);
       shoppingCart.put(str, goodsInCart);
       break;
           }else{   
              flag=false;
           }
       }
        if(!flag){
            System.out.println("商品编号不存在!");
        }
   }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
public class TestDemo {
 
    public static void main(String[] args) {
        GoodsManage gm=new GoodsManage();
        ShoppingCart sc=new ShoppingCart();
        Scanner hh=new Scanner(System.in);
        Boolean flag=false;
        int n=0;
        while(flag==false){                
        System.out.println("********************************");
        System.out.println("**主菜单**");
        System.out.println("1--商品管理");
        System.out.println("2--购物车");
        System.out.println("0--退出");
        System.out.println("********************************");
        System.out.println("请输入对应数字进行操作:");
        n=hh.nextInt();
        flag=true;
        if(n<0||n>2){
            System.out.println("输入错误,请重新输入");
            flag=false;
            continue;
        }else if(n==0){
                System.out.println("***欢迎您下次光临***");
                break;         
        }else{
        switch(n){
            case 1:
                while(flag==true){
         System.out.println("********************************");
         System.out.println("商品管理");
         System.out.println("1--商品信息导入");
         System.out.println("2--显示所有商品信息");
         System.out.println("9--返回上一级菜单");
         System.out.println("********************************");
         System.out.println("请输入对应数字对商品进行管理:");
         int i=hh.nextInt();
         if(i!=1&i!=2&i!=9){
             System.out.println("输入不正确,请重新输入!");
             continue;
         }else{
             switch(i){
             case 1:
                 gm.importGoods();
                 break;
             case 2:
                 gm.displayAllGoods();
                 break;
              
             case 9:
                 flag=false;
                break;             
             }
         }
                }
            break
          case 2:
           while(flag=true){
           System.out.println("********************************");
           System.out.println("           **购物车管理**           ");
           System.out.println("1--添加商品到购物车");
           System.out.println("2--修改购物车中的商品数量");
           System.out.println("3--显示购物车中的所有商品信息");
           System.out.println("4--结算");
           System.out.println("9--返回上一级菜单");
           System.out.println("********************************");
           System.out.println("请输入对应数字对购物车进行管理:");
           n=hh.nextInt();
           switch(n){
           case 1: sc.addGoodsToCart(gm);
                
           }
              }
                }
        }
        }
         
    }
 
 
}


正在回答

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

1回答

报错的贴出来吧,我刚才看了你的代码,没问题,可以运行。test应该也没问题。报空指针应该是你添加购物车然后报空指针吧?你检查一下GoodsInCart类看看。

  • 哈哈哈毛 提问者 #1
    代码没有报错了,就是添加完购物车后就报空指针,是goodsincart类什么问题呢?
    2018-07-21 19:37:26
  • 哈哈哈毛 提问者 #2
    private Goods goods; //商品信息 private int num; //商品数量 public GoodsInCart(){ } public GoodsInCart(Goods goods,int num){ this.setGoods(goods); this.setNum(num); } public Goods getGoods() { return goods; } public void setGoods(Goods goods) { this.goods = goods; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } }
    2018-07-21 19:42:26
  • Acolasia丶y 回复 提问者 哈哈哈毛 #3
    购物车类 private Map<String,GoodsInCart> shoppingCart改成private Map<String, GoodsInCart> shoppingCart = new HashMap<String, GoodsInCart>();
    2018-07-21 20:03:41
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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