2013-04-30 2 views
1

Обнаружение этого жесткого, в основном у меня есть три класса: класс Store, класс запасов, а затем класс для графического интерфейса. Когда создается магазин, я хочу, чтобы у него был собственный собственный список arraryList, чтобы я мог добавить к нему несколько объектов запаса. (выполняется через графический интерфейс).Как предоставить каждому объекту магазина собственный массив?

Я попытался включить только основной код, который необходим, (удалили методы геттер, методы сеттер, по умолчанию конструкторы CompareTo и т.д.)

Вот часть кода из классов (которые могли бы очень хорошо быть неправильно)

public class Store { 

private int id; 
private String name; 
private String location; 


private ArrayList <Stock> stockItems = new ArrayList<Stock>(); 


public Store(int idIn, String nameIn, String locationIn) { 
    id = idIn; 
    name = nameIn; 
    location = locationIn; 
    ArrayList <Stock> stockItems = new ArrayList<Stock>(); 
} 





//to add stock items to a store? 
public void addStockItem(Stock s) { 
    stockItems.add(s); 

} 

}

Stock класс

public class Stock { 
    private int id; 
    private String name; 
    private double price; 
    private int units; 



    public Stock(int idIn, String nameIn, double priceIn, int unitsIn) { 
     id = idIn; 
     name = nameIn; 
     price = priceIn; 
     units = unitsIn; 
    } 

} 

Может ли кто-нибудь сказать мне, если я на правильном пути? В графическом интерфейсе я хотел бы добавить элемент запаса в конкретный магазин из графического интерфейса?

Спасибо.

+1

Эта строка в конструкторе 'ArrayList stockItems = новый ArrayList ()' должен быть 'stockItems = новый ArrayList ()', так как вы уже определили переменную. – Aquillo

+0

К сожалению. Я на самом деле изменил это, забыл изменить его, когда я его поставил. Спасибо хоть! – C101der

+0

Добро пожаловать, это, вероятно, устраняет всю вашу проблему;) – Aquillo

ответ

3

В конструкторе Store, у вас есть

ArrayList <Stock> stockItems = ... 

Это фактически создает локальную переменную stockItems, вместо того чтобы изменить поле. Для того, чтобы сделать его работу использовать только

stockItems = ...