0

我有一个包含以下内容的“项目”类...

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 中,但我似乎无法访问它。我想将项目添加到哈希表中,如果它发现该项目已经存在,它会增加项目数量值。

我对 HashTables 的经验为零,有人可以帮忙吗?

编辑:

我的主要代码...

Store store = new Store();

    Item item1 = new Item();
    item1.setProductName("Paper Towel Roll");
    item1.setBarCode("111222333444");
    item1.setQuantity(1);

    store.put("111222333444", item1);
4

2 回答 2

1

添加 Public 以便您可以从包中访问它。它在“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

于 2013-04-17T04:49:32.467 回答
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);
于 2013-04-17T04:25:53.930 回答