331 votes

Meilleure pratique pour valider une collection vide ou nulle en Java

Je veux vérifier si une collection est vide et null. Est-ce que quelqu'un pourrait me faire savoir quelle est la meilleure pratique.

Actuellement, je vérifie comme suit :

if (null == sampleMap || sampleMap.isEmpty()) {
  // faire quelque chose
} 
else {
  // faire quelque chose d'autre
}

12voto

vikash Points 185

Nous allons vérifier si un objet Collection est vide, nul ou non. tous ces méthodes qui sont données ci-dessous, sont présentes dans le package org.apache.commons.collections4.CollectionUtils.

Vérifier sur List ou set type d'objets de collection.

CollectionUtils.isEmpty(listObject);
CollectionUtils.isNotEmpty(listObject);

Vérifier sur les types d'objets Map.

MapUtils.isEmpty(mapObject);
MapUtils.isNotEmpty(mapObject);

Le type de retour de toutes les méthodes est booléen.

8voto

l19 Points 893

Vous pouvez utiliser la méthode "notEmpty" de org.apache.commons.lang.Validate:

Validate.notEmpty(myCollection) -> Valide que la collection d'arguments spécifiée n'est ni nulle ni de taille zéro (sans éléments); sinon une exception est déclenchée.

2voto

eis Points 14687

Si vous avez besoin de vérifier la nullité, c'est la bonne méthode. Cependant, si vous avez le contrôle sur cela, renvoyez simplement une collection vide, chaque fois que vous le pouvez, et vérifiez uniquement plus tard si elle est vide.

Ce fil de discussion concerne la même chose avec C#, mais les principes s'appliquent également bien à Java. Comme mentionné là-bas, null ne doit être renvoyé que si

  • null pourrait signifier quelque chose de plus spécifique;
  • votre API (contrat) pourrait vous obliger à renvoyer null.

0voto

Kevin KOUOMEU Points 111

En supposant que votre collection est une List, vous pouvez simplement utiliser ceci

private boolean collectionIsNotNullAndNotEmpty(List collection) {
    return Objects.nonNull(collection) && !collection.isEmpty();
}

-4voto

Pour toutes les collections y compris les cartes, utilisez la méthode isEmpty qui est disponible sur ces objets de collection. Mais vous devez effectuer une vérification de null auparavant :

Map map;

........
if(map!=null && !map.isEmpty())
......

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X