Fehleranalyse des Satzes if (!password2.equals(password1)|| "".equals(password1) || passwort1.equals(null)):
Zuerst der richtige Weg schreibe es ist if (null .equals(password1) || "".equals(password1) || !password1.equals(password2)).
Dann analysieren wir die falsche Schreibweise:
Der Hauptfehler liegt im Satz passwort1.equals (null). Der Grund, warum dieser Satz falsch ist, liegt darin, dass er falsch ist null, dann wird eine Nullzeigerausnahme gemeldet. Und es sollte zuerst überprüft werden, denn wenn Passwort1 null ist, besteht keine Notwendigkeit, den Rest zu überprüfen.
! passwort2.equals(password1) Wie oben kann auch passwort2 ein Nullzeigerproblem haben, daher muss passwort1 außerhalb platziert werden, da es zuvor erkannt wurde. Wenn dieser Satz also ausgeführt wird, ist passwort1 definitiv nicht null.
Darüber hinaus kann es auch in der folgenden Form geschrieben werden: if (StringUtils.isEmpty(password1) || !password1.equals(password2)), StringUtils.isEmpty(password1) ist äquivalent zu null.equals (password1) ||. „“.equals(password1) ist nur gekapselt.
Im Anhang finden Sie die Erklärung einer anderen Person zu StringUtils: (Übertragung) Das Operationsobjekt der StringUtils-Methode ist ein Objekt vom Typ java.lang.String, das eine Ergänzung zur vom JDK bereitgestellten Operationsmethode vom Typ String darstellt und ist nullsicher (d. h. wenn der Eingabeparameter String null ist, wird keine NullPointerException ausgelöst, aber die entsprechende Verarbeitung wird durchgeführt. Wenn die Eingabe beispielsweise null ist, ist der Rückgabewert ebenfalls null usw. (Sie können Weitere Informationen finden Sie im Quellcode.
Weitere Artikel zur Analyse von Java-Equals()-Nutzungsfehlern finden Sie auf der chinesischen PHP-Website!