java如何使用arraylist中先前定义的类
我正在编写一个java库存问题的补充,该问题使用arraylist编写方法来添加、搜索库存中的项目
我正在使用另一个名为InventoryItem的类,它有sku、itemName、price和stock的变量
我想知道,在编写添加项的方法时,使用一个明确定义的类是否正确
import java.util.*;
public class Warehouse {
private ArrayList<InventoryItem> inventory = new ArrayList<InventoryItem>();
public static void addItem(InventoryItem i )
inventory.add(i);
}
public static void main(String [] args) {
addItem();
}
}
这是InventoryItem类
public class InventoryItem {
private int sku;
private String itemName;
private double price;
private int stock;
public InventoryItem (int sku, String itemName, double price, int stock) {
this.sku = sku;
this.itemName = itemName;
this.price = price;
this.stock = stock;
}
public int getSku() {
return sku;
}
public String getitemName () {
return itemName;
}
public void setPrice (double price) {
this.price = price;
}
public double getPrice () {
return price;
}
public void setStock(int stock) {
this.stock = stock;
}
public int getStock() {
return stock;
}
@Override
public String toString() {
return String.format("[%d ,%s ,%1.2f ,%d]", sku, itemName, price, stock);
}
public static void main(String[] args) {
InventoryItem itemName = new InventoryItem(1, "asdf", 2.4, 5);
System.out.println(itemName);
}
}
# 1 楼答案
你说得对。调用addItem()方法时,需要传入InventoryItem对象。所以也许更像是:
当然,您需要确保在InventoryItem类中有一个构造函数,它接受您需要的参数
所以,根据你的InventoryItem类,以及下面Bohemian的额外提示,它看起来是这样的:
# 2 楼答案
你的
addItem()
方法的主要问题是它是static
,所以它无法访问warehouse
列表,这是一个只能从实例访问的实例变量要解决此(及其他)问题,请尝试以下方法: