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