麻烦老师帮忙看看添加购物车为什么空指针
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 星