如何通过键盘输入为Java集合添加带属性的Product对象?
解决通过键盘输入添加带属性的Product实例到列表的问题
先修正原代码里的核心问题
- Product类构造函数名错误:类名是
Product,但构造函数写的是Prodotto,这会导致无法正常创建Product实例,必须改成和类名一致的Product。 - ProductList中的冗余方法:那个空的
add(String next)方法没用,直接删掉就行,我们用已有的addProduct(Product p)方法来添加对象。 - 主类添加逻辑错误:原代码直接传字符串给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
相关产品推荐
相关产品推荐

