Boolean.valueOf() 有时会生成 NullPointerException
2022-08-31 09:17:54
我有这个代码:
package tests;
import java.util.Hashtable;
public class Tests {
public static void main(String[] args) {
Hashtable<String, Boolean> modifiedItems = new Hashtable<String, Boolean>();
System.out.println("TEST 1");
System.out.println(modifiedItems.get("item1")); // Prints null
System.out.println("TEST 2");
System.out.println(modifiedItems.get("item1") == null); // Prints true
System.out.println("TEST 3");
System.out.println(Boolean.valueOf(null)); // Prints false
System.out.println("TEST 4");
System.out.println(Boolean.valueOf(modifiedItems.get("item1"))); // Produces NullPointerException
System.out.println("FINISHED!"); // Never executed
}
}
我的问题是,我不明白为什么测试3工作正常(它打印但不产生),而测试4抛出一个.正如您在测试 1 和 2 中看到的,并且等于 和 。false
NullPointerException
NullPointerException
null
modifiedItems.get("item1")
null
Java 7 和 8 中的行为是相同的。