Null値をHashMapに渡す方法は?
次のコードスニペットは、入力されたオプションで機能します。
HashMap<String, String> options = new HashMap<String, String>();
options.put("name", "value");
Person person = sample.searchPerson(options);
System.out.println(Person.getResult().get(o).get(Id));
だから問題は、null値を渡すためにオプションやメソッドに入力する必要があるものですか?
次のコードを試してみましたが成功しませんでした:
options.put(null, null);
Person person = sample.searchPerson(null);
options.put(" ", " ");
Person person = sample.searchPerson(null);
options.put("name", " ");
Person person = sample.searchPerson(null);
options.put();
Person person = sample.searchPerson();
HashMapはnull
キーと値の両方をサポートします
http://docs.Oracle.com/javase/6/docs/api/Java/util/HashMap.html
...およびNULL値とNULLキーを許可します
あなたの問題はおそらく地図そのものではないでしょう。
以下の可能性に注意してください。
null
を使用できます。ただし、複数のnull
キーと値を使用すると、nullキーと値のペアが1回だけ使用されます。
Map<String, String> codes = new HashMap<String, String>();
codes.put(null, null);
codes.put(null,null);
codes.put("C1", "Acathan");
for(String key:codes.keySet()){
System.out.println(key);
System.out.println(codes.get(key));
}
出力は次のようになります。
null //key of the 1st entry
null //value of 1st entry
C1
Acathan
null
を1回だけ実行しますoptions.put(null, null);
Person person = sample.searchPerson(null);
複数の値をsearchPerson
にする場合は、null
メソッドの実装に依存します。それに応じて実装できます
Map<String, String> codes = new HashMap<String, String>();
codes.put(null, null);
codes.put("X1",null);
codes.put("C1", "Acathan");
codes.put("S1",null);
for(String key:codes.keySet()){
System.out.println(key);
System.out.println(codes.get(key));
}
出力:
null
null
X1
null
S1
null
C1
Acathan
Mapパラメーターを使用してメソッドを呼び出そうとしているようです。したがって、空の人の名前で呼び出すには、適切なアプローチが必要です
HashMap<String, String> options = new HashMap<String, String>();
options.put("name", null);
Person person = sample.searchPerson(options);
または、このようにすることができます
HashMap<String, String> options = new HashMap<String, String>();
Person person = sample.searchPerson(options);
を使用して
Person person = sample.searchPerson(null);
Nullポインター例外が発生する可能性があります。それはすべてsearchPerson()メソッドの実装に依存します。
Mapにnull
の値を持たないのプログラミングの良い習慣です。
null
値を持つエントリがある場合、エントリがマップに存在するか、null
値が関連付けられているかどうかを判断することはできません。
そのような場合に定数を定義するか(例:String NOT_VALID = "#NA"
)、またはnull
値を持つキーを保存する別のコレクションを作成できます。
詳しくはこちらをご覧ください link .