[Java] (list == null || list.size () == 0) Ich mag es nicht, NULL / leer zu überprüfen

**Hinweis! !! ** **.

Für Anfänger + Dieser Artikel hat viele persönliche Meinungen.

Betriebsumgebung

Hintergrund

Wenn ich eine Codeüberprüfung durchführe, sehe ich sie manchmal

        List<String> list =Einige Prozesse / Methoden (Liste wird zurückgegeben);
        
        //NULL und leerer Scheck
        if (list == null || list.size() == 0) {
        }

Es ist ein Code, der eine NULL / Leerprüfung der Liste durchführt.

Es gibt kein Problem im Betrieb. Ich mag es jedoch nicht so sehr, deshalb kann ich Sie bitten, es zu beheben. Es gibt hauptsächlich ** zwei ** Gründe.

Erstens: Kann List NULL sein?

Zunächst möchte ich Sie bitten, zu überprüfen, ob die Listenvariable unter "Einige Prozesse / Methoden" auf NULL gesetzt werden kann.

Wenn Sie es auf NULL setzen können, sollten Sie den Prozess dort korrigieren.

Warum?

Dies dient dazu, die Möglichkeit einer NullPointerException zu verringern. Sie können auch die NULL-Prüfung des Anrufers aufheben.

Wenn "irgendein Prozess / eine Methode" gemeinsam ist, müssen alle Aufrufer nach NULL suchen. Wenn der Aufrufer nicht nach NULL sucht, besteht die Gefahr, dass eine NullPointerException auftritt.

Wenn niemals NULL zurückgegeben wird, muss der Methodenaufrufer keinen Fall annehmen, in dem NULL zurückgegeben wird. Die Implementierung des Anrufers wird etwas einfacher.

Entfernen Sie alle Elemente in der Liste mit `remove ()` oder `removeAll ()` usw.

Collections.emptyList()Lassen Sie uns eine leere Liste zurückgeben.



 Es ist auch eine gute Idee, der Listendeklaration final hinzuzufügen.
 * Ich habe es dir in den Kommentaren gesagt.

# Zweitens: Ich möchte, dass Sie isEmpty () anstelle von size == 0 verwenden

 Ist das ein persönliches Hobby? Meinung? ist.

#### **`list.size ==Liste statt 0.isEmpty()Ich möchte, dass.`**

Warum?

Ich denke, es gibt eine Meinung, dass "der Inhalt von isEmpty () `` is size == 0`` !!!". Das stimmt überhaupt nicht. Als Verarbeitungsinhalt ändert sich nichts.

Aber ist `list.isEmpty ()` nicht einfacher zu verstehen als list.size == 0``` ...? Vielleicht ist list.isEmpty () `` für Nicht-Java-Programmierer leichter zu verstehen: "Ich überprüfe, ob es leer ist!".

Persönliches Fazit

Ich möchte, dass Sie die NULL-Prüfung stoppen und nur das Leerzeichen von `isEmpty ()` prüfen. Um die Notwendigkeit einer NULL-Prüfung zu vermeiden, geben Sie NULL niemals in "einem Prozess / einer Methode" zurück, selbst wenn eine leere Liste zurückgegeben wird. size() == 0Als,isempty()Ist besser lesbarPersönlich denke ichDamitisempty()benutzen.

        List<String> list =Einige Prozesse / Methoden (Liste wird zurückgegeben);
        
        //Nur leere Prüfung
        if (list.isEmpty()) {
        }

Manchmal stoße ich auf den Code "Ich werde nach NULL suchen"

Gelegentlich gibt es einen Code, der wie unten gezeigt mit `&&` urteilt. Seien Sie jedoch vorsichtig, da dies zu einer NullPointerException führt, wenn NULL kommt.

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

Bonus

Anscheinend in der Ausbildung für neue Mitarbeiter(list == null || list.size() == 0)Es scheint, dass er unterrichtet wurde. Ich liege nicht falsch, aber ... ich hatte es satt, also schrieb ich einen Artikel. (Was meinst du?

Recommended Posts

[Java] (list == null || list.size () == 0) Ich mag es nicht, NULL / leer zu überprüfen
Bei der Java-Parallelverarbeitung bin ich mir nicht sicher
[Java] Ich möchte überprüfen, ob die Elemente in der Liste null oder leer sind. [Collection Utils]
[Java-Anfänger] Befehlszeilenargumente ... Ich weiß nicht ~