我有一个库存列表作为一个类,然后是一个商店类,其构造函数如下所示。商店有一个链接到库存类的数组列表。
如何访问某个商店的数组列表?
E.G。如果我选择商店argos我想要它所有的库存。每个商店都有自己的库存
public Store(int storeId, String name, String location){
this.storeId = storeId;
this.name = name;
this.location = location;
items = new ArrayList<Stock>();
}
答案 0 :(得分:3)
如果每个Store
都有自己的Stock
项列表,那么这必须是属性,或私有实例变量 ,班级股票。然后可以使用getter访问Store的项目,例如。
public class Store {
private List<Stock> items;
public Store(List<Stock> items){
this.items = items;
}
public List<Stock> getStock(){
// get stock for this Store object.
return this.items;
}
public void addStock(Stock stock){
this.getStock().add(stock);
}
}
然后,您可以使用Stock子项的getter访问Store实例的项目。
答案 1 :(得分:1)
可以以这种方式提供安全访问,但如果您没有向用户提供商店的密钥并返回库存清单,那么封装会更好。
public class Store {
private List<Stock> stock;
public Store(List<Stock> stock) {
this.stock = ((stock == null) ? new ArrayList<Stock>() : new ArrayList<Stock>(stock));
}
public List<Stock> getStock() {
return Collections.unmodifiableList(this.stock);
}
}
答案 2 :(得分:1)
老实说,我建议使用HashMap。将每个商店作为密钥或商店ID,然后将Stock列表作为值。这将允许您简单地执行:
Map storeMap = new HashMap<String, List<Stock>();
items = storeMap.get(key);
答案 3 :(得分:1)
public class Store {
private List<Stock> items;
public Store(int storeId, String name, String location){
this.storeId = storeId;
this.name = name;
this.location = location;
items = new ArrayList<Stock>();
}
public List<Stock> getAllStock(){
return this.items;
}
}
答案 4 :(得分:0)
有很多种方法可以将列表设置为Store
对象,并使用getter
可以return
列表。
public Store(int storeId, String name, String location,ArrayList<Stock> list){
this.storeId = storeId;
this.name = name;
this.location = location;
this.items = new ArrayList<Stock>(); //or any possibility to set list
}
public ArrayList<Stock> getListOfStock(){
return this.items;
}