我在 Java 中偶然发现了这个奇怪的东西。在编码时,我不小心忘记实例化地图。在将数据放入其中时,一切都没有错误,但是在获取它们时,我得到了明显的 NullPointerException。这是我使用的代码片段:
public class Loader {
private static Map<String, Object> map;
public static load() {
//...
// read lines and put them into map
map.put(line, new Object()); // <-- NO ERROR
//...
}
public static parse(){
//...
for(...){
map.get(key); //<-- ERROR on map (NullPointerException)
}
//...
}
}
提供的代码是存根,主要目的是演示奇怪的地图行为。那么为什么可以将数据插入null呢?我正在使用 Java *1.6.0_29*。
请注意此代码是完整的,地图未在其他任何地方初始化;代码是完整的。