Javaでこの奇妙なことに出くわしました。コーディング中に、Map をインスタンス化するのをうっかり忘れてしまいました。データを入れている間はすべてエラーがありませんでしたが、データを取得すると明らかな 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* を使用しています。
このコードは完全であることに注意してください。マップは他の場所では初期化されていません。コードが完成しました。