Ich habe einen neuen Weg gefunden, um mit NullPointerException in Java8 umzugehen, daher werde ich ihn als Erinnerung schreiben.
Ich werde versuchen, schleimig sofort zu löschen.
java
public class Test {
public static void main(String[] args) {
String str = null;
System.out.print(str.length());
}
}
Verarbeitungsergebnis
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:6)
Ich habe eine NullPointerException. Als Problemumgehung aus Java8 implementiert, indem Sie Optional hinzufügen NullPointer kann behandelt werden. Ändern Sie mit dem Bild unten.
Aktionsbeispiel
import java.util.Optional;
public class Test {
public static void main(String[] args) {
String str = null;
// System.out.print(str.length());
Optional<String> strOpt = Optional.ofNullable(str);
strOpt.ifPresent(v -> System.out.println(v.length()));
}
}
Der Vorgang wurde ohne NullPointerException abgeschlossen.
"Optional" ist in Java8 und höher implementiert https://docs.oracle.com/javase/jp/8/docs/api/java/util/Optional.html
Optional<String> strOpt = Optional.ofNullable(str);
Sie können die Funktion ofNullable ()
verwenden, indem Sie str wie folgt mit Optional
umschließen.
Als Argument für die Funktion "ifPresent"
Speichern Sie den Inhalt von str
einmal in der Variablen v
und verwenden Sie ihn in der Systemübersicht
Diese Methode wird als Lambda-Ausdruck bezeichnet und ist eine neue Funktion, die von java8 zusammen mit Optional implementiert wird.
strOpt.ifPresent(v -> System.out.println(v.length()));
Zuerst habe ich das folgende Beispiel als ein anderes Muster geschrieben, aber die folgende Methode scheint *** eine tödliche Problemumgehung *** zu sein. Ich werde es als schlechtes Beispiel mit einem Gebot an mich selbst posten. Sie können es sehen, indem Sie diesen Artikel lesen https://qiita.com/BlueRayi/items/ef46496ef2ef36b9cbb7#%E3%81%AA%E3%82%8B%E3%81%B9%E3%81%8Foptionalifpresent%E3%82%82%E4%BD%BF%E3%81%86%E3%81%AA (* Wenn Sie diesen Artikel lesen, scheint es, dass die Nullprüfung selbst mit Optional in erster Linie Unsinn ist.)
schlechtes Beispiel
import java.util.Optional;
public class Test {
public static void main(String[] args) {
String str = null;
// System.out.print(str.length());
Optional<String> strOpt = Optional.ofNullable(str);
if(strOpt.isPresent()) {
String message = strOpt.get();
System.out.println(message.length());
}
}
}
Insbesondere ist es einfach, die Methode zum Abrufen des Werts () mit isPresent () in der if-Anweisung zu implementieren. Es ist gut zu glauben, dass die Funktion isPresent () verwendet wird, wenn sie unvermeidbar ist, da der Vorteil der Verwendung von Optional nicht genutzt wird und der folgende Artikel in Bezug auf die Nuance leicht zu verstehen scheint.
Sie sollten get selten verwenden. Der Zweck der Verwendung von Optional ist die Meldung "Wenn kein Wert vorhanden ist, tun Sie dies bitte." Wenn Sie mit> get plötzlich eine Ausnahme erhalten, entspricht dies einer NullPointerException.
https://irof.hateblo.jp/entry/2015/05/05/071450
Recommended Posts