Einige Personen (interne Mitarbeiter) schreiben beim Vergleichen von Objekten immer noch den folgenden Code. Um NullPointerException zu vermeiden, schreiben Sie zuerst Konstanten.
if ("hoge".equals(hoge)) {
//Erhalten Sie niemals eine NullPointerException
}
Ich überprüfe zuerst null und vergleiche dann.
if (hoge != null && hoge.equals("hoge")) {
//Wenn hoge NULL ist, wird der nachfolgende String.gleich wird nicht ausgeführt
}
Wenn Sie Java 7 oder höher verwenden, verwenden Sie bitte `java.util.Objects.equals (Objekt a, Objekt b)`
.
In diesem Fall wird ein Vergleich unter Berücksichtigung von Null durchgeführt.
if (Objects.equals(hoge, "hoge")) {
//wird bearbeitet
}
Auch wenn der Zeiger (Adresse im Speicher) des Objekts unterschiedlich ist Seien Sie versichert, dass die gespeicherten Werte miteinander verglichen werden.
String hoge1 = "hoge";
String hoge2 = new String("hoge");
System.out.println(hoge1 == hoge2); // false
System.out.println(hoge1.equals(hoge2)); // true
System.out.println(Objects.equals(hoge1, hoge2)); // true
Beim Schreiben dieses Artikels habe ich java.util.Objects erneut besucht. Ich wusste das nicht! Ich werde so etwas schreiben.
toString
Eine Methode zum Konvertieren in einen String-Typ. Wenn das Konvertierungsziel null ist, wird es in die Zeichenfolge null konvertiert.
Object obj = null;
String str = Objects.toString(obj);
System.out.println(Objects.equals(str, "null")); // true
System.out.println(Objects.equals(str, null)); // false
Es ist sehr schön, Nullen vermeiden zu können, aber ich denke, es gibt Situationen, in denen es schwierig ist, in die Zeichenfolge Null zu konvertieren. Wenn Sie in einem solchen Fall im zweiten Argument eine Zeichenfolge festlegen, können Sie den zurückgegebenen Wert ändern, wenn er null ist.
Object obj = null;
String str = Objects.toString(obj, "Es ist NULL!");
System.out.println(str); //Ausgabeergebnis: NULL!
Ich kannte die toString-Methode, wusste aber nicht, dass ich das zweite Argument setzen konnte.
isNull/nonNull
isNull ist eine Methode, die true zurückgibt, wenn das Argument NULL ist. nonNull ist eine Methode, die false zurückgibt, wenn das Argument NULL ist.
Object obj = null;
System.out.println(Objects.isNull(obj)); // true
System.out.println(Objects.nonNull(obj)); // false
obj == null
Sieht stylischer aus.
(Ich habe den Unterschied im Verhalten zwischen `obj == null``` und`
obj! = Null``` nicht gesehen ...)
requireNonNull
Eine Methode, um zu überprüfen, ob das Ziel NULL ist. Wenn es NULL ist, tritt eine NullPointerException auf.
Object obj2 = Objects.requireNonNull(obj1);
Wenn Sie versuchen, eine NULL-Prüfung ohne diese Methode durchzuführen,
if (obj1 == null) {
throw new NullPointerException();
} else {
Object obj2 = Objects.requireNonNull(obj1);
}
Wird sein. Ich denke, es ist eine einfache und bequeme Methode.
Objects (Java Platform SE 7) Die alte Schreibweise ist alt! ?? java.util.Objects ist zu bequem
Recommended Posts