请问,怎样得到商品的信息呢

请问,怎样得到商品的信息呢

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

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

3回答
chrismorgen 2018-09-21 14:41:15

你好同学,请参考下图,先说一下你代码中的问题,gm.getGoodsSet()方法获得是一个集合,你不能对该集合进行(GoodsInCart)类型的强转,是不符合逻辑,你需要用一个Set类型的变量去接收这个集合,譬如Set set = gm.getGoodsSet();来接收,而不是使用GoodsInCart类型的对象去接收,或者按下图所示,可以不用变量进行接收,直接用for循环遍历集合中的商品信息即可,祝学习愉快~

http://img1.sycdn.imooc.com//climg/5ba4915900012a0506240359.jpg

提问者 雨夜落寞 2018-09-21 10:04:26

老师,我按照你给的方案改了,可是也没法进行运行和得到商品信息啊,你帮我看看是哪里出错了

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();
    }

chrismorgen 2018-09-20 19:06:12

因为在测试类中调用了addGoodsToCart方法,并把GoodsManage类的对象gm传送到ShoppingCart类中,通过gm对象可以获取到GoodsManage类中的集合,获取集合也就意味着获取了商品信息。还有就是ShoppingCart不继承GoodsManage类哦,如果有不明白的地方可以继续提问,祝学习愉快~

  • 提问者 雨夜落寞 #1
    老师,我按照你给的方案改了,可是也没法进行运行和得到商品信息啊,你帮我看看是哪里出错了 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(); }
    2018-09-21 10:05:22
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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