请问,怎样得到商品的信息呢
package com.goodsdemo;//购物车类
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class ShoppingCart extends GoodsManage{
//属性:购物车shoppingCart
private Map shoppingCart;
Map<String, GoodsInCart> map=new HashMap<String, GoodsInCart>();
//构造方法
public ShoppingCart(Map shoppingCart) {
this.shoppingCart = shoppingCart;
}
//getter&setter方法
public Map getShoppingCart() {
return shoppingCart;
}
public void setShoppingCart(Map shoppingCart) {
this.shoppingCart = shoppingCart;
}
Scanner sc=new Scanner(System.in);
//添加商品到购物车
public void addGoodsToCart(GoodsManage gm) {
System.out.println("请输入要添加的商品编号:");
String key=sc.next();
System.out.println("请输入数量:");
int num=sc.nextInt();
}
//修改购物车中商品的数量
public void updataNumInCart() {
System.out.println("请输入数量:");
int num=sc.nextInt();
}
public void displayAllInCart() {//显示购物车中的所有商品信息
}
}
public void settleAccounts() {//结算方法
}
}
正在回答 回答被采纳积分+1
你好同学,请参考下图,先说一下你代码中的问题,gm.getGoodsSet()方法获得是一个集合,你不能对该集合进行(GoodsInCart)类型的强转,是不符合逻辑,你需要用一个Set类型的变量去接收这个集合,譬如Set set = gm.getGoodsSet();来接收,而不是使用GoodsInCart类型的对象去接收,或者按下图所示,可以不用变量进行接收,直接用for循环遍历集合中的商品信息即可,祝学习愉快~
老师,我按照你给的方案改了,可是也没法进行运行和得到商品信息啊,你帮我看看是哪里出错了
public void addGoodsToCart(GoodsManage gm) {
GoodsInCart value=(GoodsInCart) gm.getGoodsSet();
System.out.println("添加商品到购物车中");
gm.importGoods();
gm.displayAllGoods();
System.out.println("请输入要添加的商品编号:");
String key=sc.next();
((Set<Goods>) gm).contains("key");
System.out.println("请输入数量:");
int num=sc.nextInt();
map.put(key, value);
}
Map<String, GoodsInCart> map=new HashMap<String, GoodsInCart>();
ShoppingCart sc=new ShoppingCart( (Map) gm);
sc.addGoodsToCart(gm);
sc.displayAllInCart();
}
因为在测试类中调用了addGoodsToCart方法,并把GoodsManage类的对象gm传送到ShoppingCart类中,通过gm对象可以获取到GoodsManage类中的集合,获取集合也就意味着获取了商品信息。还有就是ShoppingCart不继承GoodsManage类哦,如果有不明白的地方可以继续提问,祝学习愉快~
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星