麻烦老师帮忙看看添加购物车为什么空指针
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("商品编号不存在!"); } }
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积分~
来为老师/同学的回答评分吧
0 星