En Java, les tableaux nuls et vides ne sont pas le même concept. Si vous souhaitez déterminer si le tableau est vide, vous pouvez l'écrire comme ceci.
` if (map.get(a) == null || map.get(a).size() == 0) `
S'il s'agit d'un environnement de production, il est recommandé d'utiliser des classes d'outils, telles que apache common ou Spring Provides CollectionUtils.isEmpty(map.get(a))
Si une ArrayList a été instanciée, elle n'est certainement pas égale à null. Puisque la méthode toString peut être exécutée sans signaler d'erreur, elle doit avoir été instanciée. Étant donné que toString est une méthode de la classe parent de niveau supérieur Object, comment un objet non instancié peut-il avoir cette méthode.
ArrayList list = new ArrayList();
System.out.println(list == null); // false
ArrayList list1 = null;
System.out.println(list1.toString()); // 空指针
if(map.get(a)==null)
Vous ne savez pas s'il est vide ?En Java, les tableaux nuls et vides ne sont pas le même concept. Si vous souhaitez déterminer si le tableau est vide, vous pouvez l'écrire comme ceci.
`
if (map.get(a) == null || map.get(a).size() == 0)
`
Si une ArrayList a été instanciée, elle n'est certainement pas égale à null.
Puisque la méthode toString peut être exécutée sans signaler d'erreur, elle doit avoir été instanciée. Étant donné que toString est une méthode de la classe parent de niveau supérieur Object, comment un objet non instancié peut-il avoir cette méthode.
map.get(a).toString().equals(""); toujours false
Le résultat que vous avez imprimé
a**[]
montre quemap.get(a).toString()
n'est pas une chaîne vide, mais[]
, donc"[]".equals("")
est toujours fauxmap.get(a) ! = nul ; toujours vrai
Si
map.get(a).toString()
ne lève pas d'exception de pointeur nul, alorsmap.get(a)
doit être non nulJuge vide
Si la valeur correspondant à la clé est toujours une ArrayList, alors la méthode suivante peut être utilisée :