Java 9 verbesserte Optional-Klasse
Die Optional-Klasse wurde in Java 8 eingeführt. Die Einführung der Optional-Klasse löst die NullPointerException effektiv. In Java 9 wurden drei Methoden hinzugefügt, um ihre Funktionalität zu verbessern:
- stream()
- ifPresentOrElse()
- or()
stream()-Methode
Syntax
public Stream<T> stream()
Die Methode stream konvertiert ein Optional in einen Stream. Wenn das Optional einen Wert enthält, gibt sie einen Stream zurück, der diesen Wert enthält; andernfalls gibt sie einen leeren Stream zurück (Stream.empty()).
Beispiel
Das Ausführen des Ausgabeergebnisses ist:
[A, B] [A, B]
ifPresentOrElse()-Methode
Syntax
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
Die Verbesserung der ifPresentOrElse-Methode besteht darin, dass sie ein else hat und zwei Parameter akzeptiert: Consumer und Runnable.
Der Zweck der ifPresentOrElse-Methode ist: Wenn ein Optional einen Wert enthält, wird die Funktion action auf den enthaltenen Wert angewendet, d. h. action.accept(value), was mit ifPresent übereinstimmt; Der Unterschied zur ifPresent-Methode besteht darin, dass ifPresentOrElse außerdem einen zweiten Parameter hat, emptyAction – wenn das Optional keinen Wert enthält, ruft ifPresentOrElse emptyAction auf, d. h. emptyAction.run().
Beispiel
Das Ausführen des Ausgabeergebnisses ist:
Value: 1 Not Present.
or()-Methode
Syntax
public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)
Wenn ein Wert vorhanden ist, geben Sie den von Optional angegebenen Wert zurück; andernfalls geben Sie einen voreingestellten Wert zurück.
Beispiel
Das Ausführen des Ausgabeergebnisses ist:
Value: Mahesh Value: Not Present
Neue Funktionen in Java 9