Hashtable副本导致空指针

时间:2012-07-09 03:34:34

标签: java collections nullpointerexception hashtable

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

Hashtable model1 = model;

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

Hashtable model2 = new Hashtable(model);

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

1 个答案:

答案 0 :(得分:1)

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

如果要检索的值为null,则表示您获得了一个空Boolean对象,但JVM正在尝试将其自动取消映射到基元,但由于该值为null,因此您将获得一个空指针例外。您应该验证您尝试获取的值实际上不是null。尝试没有自动拆箱行为,看看会发生什么。

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

JavaDoc for Hashtable:返回指定键映射到的值,或null 如果此映射不包含键的映射。