System.out.println("a**"+map.get(a).getClass());System.out.println("a**"+map.get(a));
-------------分割线------------a**class java.util.ArrayLista**[]
以上是控制台打印出来的东西。
map.get(a).toString().equals("");一直是falsemap.get(a)!=null;一直是true
ringa_lee
if(map.get(a)==null)空かどうかわかりませんか?
if(map.get(a)==null)
Java では、null と空の配列は同じ概念ではありません。配列が空かどうかを確認したい場合は、次のように記述できます。
`if (map.get(a) == null || map.get(a).size() == 0)`
本番環境の場合は、apache common または Spring が提供する CollectionUtils.isEmpty(map.get(a))
apache common
CollectionUtils.isEmpty(map.get(a))
ArrayList がインスタンス化されている場合、それは明らかに null に等しくありません。 toString メソッドはエラーを報告せずに実行できるため、インスタンス化されている必要があります。 toString は最上位の親クラス Object のメソッドであるため、インスタンス化されていないオブジェクトがこのメソッドを持つことができます。
出力した結果a**[] を見ると、map.get(a).toString() は空の文字列ではなく [] であるため、"[]".equals("") は常に false であることがわかります
a**[]
map.get(a).toString()
[]
"[]".equals("")
map.get(a).toString() が null ポインター例外をスローしない場合、map.get(a) は非 null でなければなりません
map.get(a)
キーに対応する値が常に ArrayList である場合、次のメソッドを使用できます:
if(map.get(a)==null)
空かどうかわかりませんか?Java では、null と空の配列は同じ概念ではありません。配列が空かどうかを確認したい場合は、次のように記述できます。
`
などのツール クラスを使用することをお勧めします。if (map.get(a) == null || map.get(a).size() == 0)
`
ArrayList がインスタンス化されている場合、それは明らかに null に等しくありません。
リーリーtoString メソッドはエラーを報告せずに実行できるため、インスタンス化されている必要があります。 toString は最上位の親クラス Object のメソッドであるため、インスタンス化されていないオブジェクトがこのメソッドを持つことができます。
map.get(a).toString().equals(""); 常に false
出力した結果
a**[]
を見ると、map.get(a).toString()
は空の文字列ではなく[]
であるため、"[]".equals("")
は常に false であることがわかりますmap.get(a)! =null; 常に true
map.get(a).toString()
が null ポインター例外をスローしない場合、map.get(a)
は非 null でなければなりません空のジャッジ
キーに対応する値が常に ArrayList である場合、次のメソッドを使用できます:
リーリー