You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过键盘输入为Java集合添加带属性的Product对象?

解决通过键盘输入添加带属性的Product实例到列表的问题

先修正原代码里的核心问题

  1. Product类构造函数名错误:类名是Product,但构造函数写的是Prodotto,这会导致无法正常创建Product实例,必须改成和类名一致的Product。
  2. ProductList中的冗余方法:那个空的add(String next)方法没用,直接删掉就行,我们用已有的addProduct(Product p)方法来添加对象。
  3. 主类添加逻辑错误:原代码直接传字符串给add方法,完全没处理属性输入,需要先引导用户输入三个属性值,再创建Product实例后添加。

修改后的完整代码

Product类

import java.util.*;

public class Product {
    public double price;
    public int quantity;
    private String id_product;
    
    // 修正构造函数名,和类名一致
    public Product(double price, int quantity, String id_product) {
        this.price = price;
        this.quantity = quantity;
        this.id_product = id_product;
    }
    
    public double getPrice() {
        return price;
    }
    
    public int getQuantity() {
        return quantity;
    }
    
    public String getId_product() {
        return id_product;
    }
}

ProductList类

import java.util.*;

public class ProductList {
    List<Product> productList;
    
    public ProductList() {
        productList = new LinkedList<Product>();
    }
    
    public void addProduct(Product p) {
        productList.add(p);
    }
    
    public int getSize() {
        return productList.size();
    }
    
    public Product getProduct(int i) {
        return productList.get(i);
    }
    
    // 删掉无用的add(String next)方法
}

WarehouseManagement主类

import java.util.*;

public class WarehouseManagement {
    public static void main(String[] args) {
        ProductList el_product = new ProductList();
        Scanner sc = new Scanner(System.in);
        boolean stop = false;
        
        while(!stop) {
            System.out.println("Available Operations:");
            System.out.println("1 - Add Product");
            System.out.println("2 - Exit"); // 添加退出选项,避免无限循环
            
            System.out.print("Insert your choice: ");
            int choice = sc.nextInt();
            
            switch (choice) {
                case 1:
                    // 依次获取产品的三个属性输入
                    System.out.print("Insert product ID: ");
                    String id = sc.next();
                    
                    System.out.print("Insert product price: ");
                    double price = sc.nextDouble();
                    
                    System.out.print("Insert product quantity: ");
                    int quantity = sc.nextInt();
                    
                    // 创建Product实例并添加到列表
                    Product newProduct = new Product(price, quantity, id);
                    el_product.addProduct(newProduct);
                    System.out.println("Product added successfully!");
                    break;
                    
                case 2:
                    stop = true;
                    System.out.println("Exiting...");
                    break;
                    
                default:
                    System.out.println("Invalid choice, please try again.");
            }
        }
        sc.close(); // 关闭Scanner
    }
}

运行逻辑说明

运行主类后,选择1进入添加产品流程:

  • 先输入产品ID
  • 再输入产品价格(支持小数)
  • 最后输入产品数量(整数)
  • 程序会自动创建对应的Product实例,并通过ProductList的addProduct方法加入列表
  • 选择2可以退出程序

内容的提问来源于stack exchange,提问作者matteo panaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:27:15