NullPointerExceptionがHashMapののputメソッドを使用しながら、
-
09-09-2019 - |
質問
次のコードは、私にNullPointerException
を与えています。問題は次の行にある:
...
dataMap.put(nextLine[0], nextLine[6]);
どのような奇妙なことは、私が期待どおりに上記の行とnextLine[0]
の呼び出しとnextLine[6]
の作業をせずにこのコードを実行していることである - 彼らは私にcsvファイルの要素を恩返しです。私は宣言したコードでHashMap
を初期化
HashMap<String, String> dataMap = null;
以前の方法で
String[] nextLine;
int counter=0;
while (counter<40) {
counter++;
System.out.println(counter);
nextLine = reader.readNext();
// nextLine[] is an array of values from the line
System.out.println(nextLine[0] + " - " + nextLine[6] +" - " + "etc...");
dataMap.put(nextLine[0], nextLine[6]);
}
return dataMap;
}
解決
HashMap<String, String> dataMap = new HashMap<String,String>();
あなたのdataMap
変数は、この時点で初期化されていません。あなたはそのことについて警告するコンパイラを取得する必要があります。
他のヒント
どこにデータマップ初期化されますか?それは常にnullです。
を明確にするために、あなたは変数を宣言し、nullに設定します。しかし、あなたは、それはHashMapのか似ているかどうか、新しい地図をインスタンス化する必要があります。
例えばます。
datamap = new HashMap();
(ジェネリックなど脇残す。)
DATAMAPが宣言されていますが、初期化されていません。これは、
で初期化することができますデータマップ=新しいHashMapの();
まあ、その行にアクセスする3つのオブジェクトがあります。 printlnの呼び出しが上記働いたのでnextLine [0]とnextLineは、[6]、nullでない場合は、データマップを残しています。あなたは)(データマップ=新しいHashMapを行いました。 somwehere?
これを行うと、
うーん、まさに には、
?期待していますHashMap<String, String> dataMap = null;
...
dataMap.put(...)
所属していません StackOverflow