java - 哈希表复制导致空指针

标签 java collections nullpointerexception hashtable

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

Hashtable model1 = model;

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

Hashtable model2 = new Hashtable(model);

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

最佳答案

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

如果您检索的值为 null,则您将获得一个 null Boolean 对象,但随后 JVM 会尝试将其自动拆箱为基元,但由于该值为 null,您会收到一个空指针异常。您应该验证您尝试获取的值实际上不为空。尝试不使用自动拆箱行为,看看会发生什么。

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

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

关于java - 哈希表复制导致空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388802/

相关文章:

java - 代码在我的计算机上运行良好,但在 "hackerearth"平台上在线运行时出现 NullPointerException

sql - SQL 语句中不允许的本地集合类型

java - 使用集合对值进行排序

java - 在 FILE 类中获取空指针异常

java - edittext 中的粗体和斜体

java - ehcache 不会在驱逐时从内存中删除元素

JavaFX 将多个 XYChart.Series 添加到 LineChart,而不解释声明每个系列

java - 通过派生类访问Java中定义的静态内部类

java - Java 中 ArrayList/Collections 方法的代码速度较慢

android - 列表弹出窗口 : getWindowVisibleDisplayFrame(Rect) null exception