java - 怎么判断map key对应的值是不是空的
ringa_lee
ringa_lee 2017-04-18 09:07:32
0
4
3006

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

ringa_lee
ringa_lee

ringa_lee

全員に返信(4)
左手右手慢动作

if(map.get(a)==null)空かどうかわかりませんか?

いいねを押す +0
Ty80

Java では、null と空の配列は同じ概念ではありません。配列が空かどうかを確認したい場合は、次のように記述できます。

`
if (map.get(a) == null || map.get(a).size() == 0)
`

本番環境の場合は、apache common または Spring が提供する CollectionUtils.isEmpty(map.get(a))

などのツール クラスを使用することをお勧めします。
いいねを押す +0
小葫芦

ArrayList がインスタンス化されている場合、それは明らかに null に等しくありません。
toString メソッドはエラーを報告せずに実行できるため、インスタンス化されている必要があります。 toString は最上位の親クラス Object のメソッドであるため、インスタンス化されていないオブジェクトがこのメソッドを持つことができます。

リーリー
いいねを押す +0
洪涛

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 である場合、次のメソッドを使用できます:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート