1

我在尝试复制哈希表然后添加一些值时遇到问题。我有两个不同的哈希表(用于调试目的)。我声明的第一个哈希表并将其设置为等于另一个哈希表。

Hashtable model1 = model;

第二个哈希表是用原始哈希表声明和初始化的,原始哈希表应该将每个元素和键复制到新的哈希表中。

Hashtable model2 = new Hashtable(model);

但是,当我尝试从 model2 取回一个元素时,它总是会抛出 NullPointerException。但是,第一个实例(model1)没有抛出任何东西(尽管它没有给我想要的结果,因为它添加了对模型实例的引用)。任何帮助或建议将不胜感激!:)

4

1 回答 1

1
boolean result = (Boolean)model.get(this.uniqueSymbol);

如果您检索的值为 null,那么您将获得一个 nullBoolean对象,但 JVM 正尝试将其自动拆箱为一个原语,但由于该值为 null,您将获得一个空指针异常。您应该验证您尝试获取的值实际上不为空。在没有自动拆箱行为的情况下尝试一下,看看会发生什么。

Boolean result = (Boolean)model.get(this.uniqueSymbol);

来自Hashtable 的 JavaDoc:返回指定键映射到的值,如果此映射不包含该键的映射,则返回null 。

于 2012-07-09T03:48:58.930 回答