[Java] Warum StringUtils.isEmpty () anstelle von String.isEmpty () verwenden?

Selbstverständlich verwendet die Nullprüfung einer Zeichenfolge `org.apache.commons.lang.StringUtils.isEmpty ()`, aber tatsächlich `java.lang.String.isEmpty () Es gibt auch . Warum also org.apache.commons.lang.StringUtils.isEmpty () `` verwenden, um ein externes Glas einzuschließen?

Unterschied zwischen zwei isEmpty ()

StringUtils isEmpty ()

Gibt true zurück, wenn null oder leer.

String isEmpty ()

Gibt nur dann true zurück, wenn length () 0 ist.

Vergleich der Ausführungsergebnisse von isEmpty () von String und StringUtils

Hier ist die Quelle für die tatsächliche Verwendung der isEmpty () -Methode für null und leere Zeichen: arrow_down:

import org.apache.commons.lang.StringUtils;

public class VsIsEmpty {

  public static void main(String[] args) {

    String str1 = null;
    String str2 = "";

    System.out.println("-------------------------");
//    System.out.println(str1.isEmpty());    //Hier tritt eine nullPointerException auf.
    System.out.println(StringUtils.isEmpty(str1));

    System.out.println("-------------------------");
    System.out.println(str2.isEmpty());
    System.out.println(StringUtils.isEmpty(str2));
  }
}

Klicken Sie hier für das Ausführungsergebnis: arrow_down:

-------------------------
true
-------------------------
true
true

String.isEmpty () gibt NullPointerExceptin zurück, nur weil "wenn length () 0 ist" steht. Daher wird es im obigen Quellcode auskommentiert.

Fazit

String.isEmpty () war ein "leeres" Kind: Ausruf: Da Null und Himmel unterschiedliche Dinge sind, scheint es wahr zu sein, wenn man gefragt wird, aber schließlich bedeutet leer, dass ich möchte, dass sowohl Null als auch Himmel als wahr zurückgegeben werden.

Recommended Posts

[Java] Warum StringUtils.isEmpty () anstelle von String.isEmpty () verwenden?
[Swift] Warum FlowLayout Delegate anstelle von Instanz verwenden sollte
Verwenden Sie enum anstelle der int-Konstante
Punkt 36: Verwenden Sie EnumSet anstelle von Bitfeldern
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
Verwenden Sie jenv, um mehrere Java-Versionen zu aktivieren
[Java] Verwendung von final in der lokalen Variablendeklaration
[Java] Verwenden Sie Collectors.collectingAndThen
[Java] Übersicht über Java
Verwenden Sie Java-Lambda-Ausdrücke außerhalb der Stream-API
Durchsuchen Sie Klassenobjekte in Kotlin (anstelle der Java-Klasse name.class).
Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket
Zusammenfassung der Java-Kommunikations-API (3) Verwendung von SocketChannel
Zusammenfassung der Java-Kommunikations-API (2) Verwendung von HttpUrlConnection
Verwendung von Abstract Class und Interface in Java richtig
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
[Null-Sicherheit] Kotlin Java-Vergleichsnotiz Richtige Verwendung der Null-Sicherheit
Abgelaufene Java-Sammlung
Verwendung der Datumsklasse
Voraussichtliche Funktionen von Java
[Java] Bedeutung der serialVersionUID
NIO.2 Überprüfung von Java
Bewertung von Java Shilber
Java - Vereinigung von Kommentaren
Verwenden Sie OpenCV mit Java
Geschichte der Java-Annotationen
Java (Verdienste des Polymorphismus)
NIO Bewertung von Java
Verwenden Sie PreparedStatement in Java
[Java] Drei Funktionen von Java
Zusammenfassung der Java-Unterstützung 2018
Verwendung des mit Tensorflow 2.0 trainierten Modells mit Kotlin / Java