麻烦老师帮忙看看添加购物车为什么空指针
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); } } } } } } } |
0
收起
正在回答
1回答
报错的贴出来吧,我刚才看了你的代码,没问题,可以运行。test应该也没问题。报空指针应该是你添加购物车然后报空指针吧?你检查一下GoodsInCart类看看。
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧