在ArrayList中添加默认值

时间:2015-12-05 18:35:49

标签: java arrays eclipse arraylist

我的产品格式如下:

public Item(String barcode, double price, int inStock) {
    if (barcode == null) {
        barcode = "";
    }
    if (price < 0) {
        price = 0;
    }
    if (inStock < 0) {
        inStock = 0;
    }
    this.barcode = barcode;
    this.price = price;
    this.inStock = inStock;
}

ArrayList将项目存储在另一个类中:

public class Inventory {
    private ArrayList<Item> currentInventory;

    public Inventory() {
        this.currentInventory = new ArrayList<Inventory>();
    }

    /**
     * Adds default products to the inventory
     */
    public void inventoryDefault() {    
        this.currentInventory("JMS343", 100.00, 5);
        this.currentInventory("RQ090", 50.00, 20);  
    }

我无法弄清楚如何将2个项目添加为默认值,或始终在currentInventory中,直到被用户删除。我也尝试过:

public void inventoryDefault() {    
    this.currentInventory.add(JMS343, 100.00, 5);
    this.currentInventory.add(RQ090, 50.00, 20);    
}

但是,这会显示JMS343RQ090无法解析为变量的错误。我以为我是在创建它们,因为它只是一个字符串。任何帮助都会很棒。谢谢!

工作解决方案如下所示:

        public void inventoryDefault() {    
            this.currentInventory.add(new Item("JMS343", 100.00, 5));
            this.currentInventory.add(new Item("RQ090", 50.00, 20));    
        }

2 个答案:

答案 0 :(得分:1)

Inventory

的构造函数执行此操作
public Inventory() {
        this.currentInventory = new ArrayList<Inventory>();
        this.currentInventory.add(new Item("JMS343", 100.00, 5));
        this.currentInventory.add(new Item("RQ090", 50.00, 20);
    }

答案 1 :(得分:1)

您需要使用构造函数构造Item个对象,以将它们添加到ArrayList。 E.g。

public void inventoryDefault() {    
    currentInventory.add(new Item("JMS343", 100.00, 5);
    currentInventory.add(new Item("RQ090", 50.00, 20);
}

或者向Inventory添加适当的功能,否则也可能有用:

public void addItem(String barcode, double price, int inStock) {
    Item item = new Item(barcode, price, inStock);
    currentInventory.add(item);
}

public void inventoryDefault() {    
    addItem("JMS343", 100.00, 5);
    addItem("RQ090", 50.00, 20);
}