我有一个“Item”类,其中包含以下内容......
public class Item{
private String barcode;
private String productName;
private int quantity;
}
我还有一个名为“Store”的类,其中包含我的HashTable ......
public class Store implements Serializable{
Hashtable<String, Item> store = new Hashtable<String, Item>();
}
字符串与条形码相同,并且是HashTable中项目对象的“键”。
现在,在我的主要内容中,我尝试创建这些类对象的实例,并使用put()方法将项目存储在Hashtable中,但我似乎无法访问它。我想将项目添加到Hashtable中,如果它发现该项目已经存在,则会增加项目数量值。
我对HashTables没有经验,有人可以帮忙吗?
编辑:
我的主要代码...
Store store = new Store();
Item item1 = new Item();
item1.setProductName("Paper Towel Roll");
item1.setBarCode("111222333444");
item1.setQuantity(1);
store.put("111222333444", item1);
答案 0 :(得分:1)
尝试这样:
public class Store implements Serializable{
public Hashtable<String, Item> itemsTable = new Hashtable<String, Item>();
}
主要是:
Store store = new Store();
Item item1 = new Item();
item1.setProductName("Paper Towel Roll");
item1.setBarCode("111222333444");
item1.setQuantity(1);
store.itemsTable.put("111222333444", item1);
答案 1 :(得分:1)
添加公开,以便您可以从包中访问它。它在“package-private”中,因为没有指定修饰符。
public class Store implements Serializable{
private Hashtable<String, Item> items = new Hashtable<String, Item>();
// Getter and setter for items hashtable
}
主要代码:
Store store = new Store();
Item item1 = new Item();
item1.setProductName("Paper Towel Roll");
item1.setBarCode("111222333444");
item1.setQuantity(1);
// NOTE: getItems() is the getter for the store object.
// Don't expose it as public. Bad encapsulation
store.getItems().put(item1.getBarCode(), item1);
注意:最好避免使用Hashtable和使用HashMap