2015-12-05 4 views
1

У меня есть продукт с следующим форматом:Добавление значения по умолчанию в 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);  
} 

Это, однако, показывает ошибку, что JMS343 и RQ090 не могут быть решены к переменным. Я думал, что создаю их на этом этапе, так как это просто строка. Любая помощь будет большой. Благодаря!

рабочего раствора, как показано ниже:

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

Вы забыли окружающие двойные кавычки. ** "** JMS343 **" ** –

+0

Вы также забыли конструктор 'Item'. – resueman

+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); 
    } 
+0

Это работало именно так, как просили! Я добавил его в свой код выше. Принимаю как ответ, когда это позволяет. –

1

Вы должны построить Item объекты с помощью конструктора, чтобы добавить их к ArrayList. Например.

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); 
} 
Смежные вопросы