[Java] (list == null || list.size () == 0) Je n'aime pas vérifier NULL / vide

**Mise en garde! !! ** **

Pour les débutants + Cet article a beaucoup d'opinions personnelles.

Environnement d'exploitation

Contexte

Quand je fais une révision de code, je le vois parfois

        List<String> list =Certains processus / méthode (la liste est renvoyée);
        
        //Chèque NULL et vide
        if (list == null || list.size() == 0) {
        }

C'est un code qui effectue une vérification NULL / vide de List.

Il n'y a aucun problème de fonctionnement. Cependant, je ne l'aime pas tellement, alors je peux vous demander de le réparer. Il y a principalement ** deux ** raisons.

Premièrement: la liste peut-elle être NULL?

Tout d'abord, je voudrais que vous vérifiiez si la variable de liste peut être définie sur NULL dans "Certains processus / méthode".

Si vous pouvez le rendre NULL, vous devez corriger le processus ici.

Pourquoi?

Ceci afin de réduire la possibilité d'une NullPointerException. Vous pouvez également éliminer la vérification NULL de l'appelant.

Si "un processus / une méthode" est commun, tous les appelants doivent vérifier NULL. Si l'appelant ne vérifie pas NULL, il existe un risque d'obtenir une exception NullPointerException.

S'il ne renvoie jamais NULL, l'appelant de la méthode n'a pas à supposer un cas où NULL est retourné. La mise en œuvre de l'appelant sera un peu plus facile.

Supprimez tous les éléments de la liste en utilisant remove () '' ou `` removeAll () '', etc.

Collections.emptyList()Retournons une liste vide.



 Il est également judicieux d'ajouter un texte final à la déclaration de liste.
 * Je vous l'ai dit dans les commentaires.

# Deuxièmement: je veux que vous utilisiez isEmpty () au lieu de size == 0

 Est-ce un passe-temps personnel? opinion? est.

#### **`list.size ==Liste au lieu de 0.isEmpty()Je te veux.`**

Pourquoi?

Je pense qu'il y a une opinion selon laquelle "le contenu de est vide () `est size == 0` `` !!! ". C'est vrai du tout. Rien ne change en tant que contenu de traitement.

Mais n'est-ce pas `list.isEmpty ()` plus facile à comprendre que list.size == 0 '' ...? Peut-être que list.isEmpty () '' `` est plus facile à comprendre pour les programmeurs non-Java, "Je vérifie si c'est vide!".

Conclusion personnelle

Je veux que vous arrêtiez la vérification NULL et ne vérifiez que le vide de isEmpty () `` `. Pour éviter d'avoir à vérifier NULL, ne retournez jamais NULL dans "un processus / une méthode", même si cela renvoie une liste vide. size() == 0Que,isempty()Est plus lisible**Je pense personnellement**Alorsisempty()```utiliser.

        List<String> list =Certains processus / méthode (la liste est renvoyée);
        
        //Chèque vide uniquement
        if (list.isEmpty()) {
        }

Parfois, je rencontre un code "Je vais vérifier NULL"

Parfois, il y a un code qui juge avec `` && '' comme indiqué ci-dessous, mais soyez prudent car cela entraînera une NullPointerException lorsque NULL arrive.

if(list == null && list.size() == 0){}

prime

Apparemment dans la formation des nouveaux employés(list == null || list.size() == 0)Il semble qu'on lui ait appris. Je n'ai pas tort, mais ... j'en avais marre, alors j'ai écrit un article. (Que voulez-vous dire?

Recommended Posts

[Java] (list == null || list.size () == 0) Je n'aime pas vérifier NULL / vide
Je ne suis pas sûr du traitement parallèle Java
[Java] Je veux vérifier que les éléments de la liste sont nuls ou vides [Collection Utils]
[Java débutant] Arguments de la ligne de commande ... Je ne sais pas ~