2016-07-10 7 views
2

Wie zu vermeiden/handle klarer und sicherer NullPointerException in Java-8?Der beste Weg, NPE in Java-8 zu behandeln oder zu vermeiden?

Aber anders als Optional Klasse:

Optional emptyOptional = Optional.empty(); 

emptyOptional.ifPresent(System.out::println); 

if (emptyOptional.isPresent()) 
    System.out.println(emptyOptional.get()); 

gibt es andere Art und Weise in java-8?

+1

Außer Optional gibt es nichts mehr als die übliche 'ist == null' und'! = null' überprüft. Vermeiden Sie Nullen so viel wie möglich. Wenn Sie sich wirklich Gedanken über Null-Sicherheit machen und dazu bereit sind, dann verwenden Sie Kotlin, das erstklassige Null-Sicherheit bietet. –

+0

Welche IDEE verwenden Sie? –

Antwort

0

Das einzige Merkmal zur Vermeidung != null Anweisung in Java 8 ist optional, wenn Sie verschiedene Muster verwenden möchten, um Sie einige Möglichkeiten:

  1. Null Object Pattern
  2. Annotation basiert, zum Beispiel wie JetBrains @NotNull/@Nullable. um weitere Informationen zu Java @NotNull

überprüfen Darüber hinaus können Sie diese Antwort in SOF überprüfen zu avoiding-null-statements

+0

Es gibt auch eine neuere Liste von Null-Annotationen: http://stackoverflow.com/questions/35892063/which-nonnull-java-annotation-to-use. In diesem Thread finden Sie eine Antwort von MErnst (spec lead von JSR 308), die den signifikanten Unterschied zwischen "alten" Deklarationsannotationen und TYPE_USE-Annotationen (Java 8) hervorhebt - Da die Frage Java 8 ausdrücklich erwähnt, ist dies zu beachten TYPE_USE-Annotationen ermöglichen eine wesentlich umfassendere Analyse. –

Verwandte Themen