logo

Optionale Java-Klasse

Java hat in jdk8 eine neue Klasse Optional eingeführt. Es handelt sich um eine öffentliche Abschlussklasse, die zur Behandlung von NullPointerException in Java-Anwendungen verwendet wird. Sie müssen das Paket java.util importieren, um diese Klasse verwenden zu können. Es bietet Methoden, mit denen das Vorhandensein eines Werts für eine bestimmte Variable überprüft werden kann.

Minimal Maximal

Optionale Java-Klassenmethoden

Methoden Beschreibung
public static Optional empty() Es gibt ein leeres optionales Objekt zurück. Für dieses Optional ist kein Wert vorhanden.
public static Optional of(T-Wert) Es gibt ein Optional mit dem angegebenen aktuellen Nicht-Null-Wert zurück.
public static Optional ofNullable(T-Wert) Es gibt ein Optional zurück, das den angegebenen Wert beschreibt, wenn dieser nicht null ist, andernfalls wird ein leeres Optional zurückgegeben.
öffentliches T get() Wenn in diesem Optional ein Wert vorhanden ist, wird der Wert zurückgegeben, andernfalls wird eine NoSuchElementException ausgelöst.
öffentlicher boolescher Wert isPresent() Es gibt true zurück, wenn ein Wert vorhanden ist, andernfalls false.
public void ifPresent(Consumer Consumer) Wenn ein Wert vorhanden ist, rufen Sie den angegebenen Verbraucher mit dem Wert auf, andernfalls unternehmen Sie nichts.
öffentlicher optionaler Filter (Prädikatprädikat) Wenn ein Wert vorhanden ist und der Wert mit dem angegebenen Prädikat übereinstimmt, wird ein optionaler Wert zurückgegeben, der den Wert beschreibt, andernfalls wird ein leerer optionaler Wert zurückgegeben.
öffentliche optionale Karte (Funktionsmapper) Wenn ein Wert vorhanden ist, wenden Sie die bereitgestellte Zuordnungsfunktion darauf an. Wenn das Ergebnis nicht null ist, geben Sie eine optionale Beschreibung des Ergebnisses zurück. Andernfalls geben Sie ein leeres Optional zurück.
public Optional flatMap(Function Wenn ein Wert vorhanden ist, wenden Sie die bereitgestellte optional tragende Zuordnungsfunktion darauf an und geben Sie dieses Ergebnis zurück. Andernfalls wird ein leerer optionaler Wert zurückgegeben.
public T orElse(T other) Es gibt den Wert zurück, falls vorhanden, andernfalls wird ein anderer Wert zurückgegeben.
public T orElseGet(Supplier other) Es gibt den Wert zurück, falls vorhanden, andernfalls wird other aufgerufen und das Ergebnis dieses Aufrufs zurückgegeben.
public T orElseThrow(SupplierExceptionSupplier) throws X erweitert Throwable Es gibt den enthaltenen Wert zurück, falls vorhanden, andernfalls wird eine Ausnahme ausgelöst, die vom bereitgestellten Lieferanten erstellt wird.
öffentlicher boolescher Wert gleicht (Objekt obj) Gibt an, ob ein anderes Objekt diesem Optional „gleich“ ist oder nicht. Das andere Objekt gilt als gleich, wenn:
  • Es ist auch optional und;
  • In beiden Fällen ist kein Wert vorhanden oder;
  • Die aktuellen Werte sind über equal() einander „gleich“.
public int hashCode() Es gibt den Hash-Codewert des aktuellen Werts zurück, falls vorhanden, oder 0 (Null), wenn kein Wert vorhanden ist.
öffentlicher String toString() Es gibt eine nicht leere Zeichenfolgendarstellung dieses Optionals zurück, die zum Debuggen geeignet ist. Das genaue Präsentationsformat ist nicht spezifiziert und kann je nach Implementierung und Version variieren.

Beispiel: Java-Programm ohne Verwendung von Optional

Im folgenden Beispiel verwenden wir keine optionale Klasse. Dieses Programm wird abnormal beendet und löst eine nullPointerException aus.

 public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } } 

Ausgabe:

 Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6) 

Um die abnormale Beendigung zu vermeiden, verwenden wir die optionale Klasse. Im folgenden Beispiel verwenden wir Optional. So kann unser Programm ohne Absturz ausgeführt werden.


Optionales Java-Beispiel: Wenn der Wert nicht vorhanden ist

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // check for value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('string value is not present'); } } 

Ausgabe:

 string value is not present 

Optionales Java-Beispiel: Wenn der Wert vorhanden ist

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE';// Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); if(checkNull.isPresent()){ // It Checks, value is present or not String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); }else System.out.println('String value is not present'); } } 

Ausgabe:

 java optional class example 

Ein weiteres optionales Java-Beispiel

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index Optional checkNull = Optional.ofNullable(str[5]); checkNull.ifPresent(System.out::println); // printing value by using method reference System.out.println(checkNull.get()); // printing value by using get method System.out.println(str[5].toLowerCase()); } } 

Ausgabe:

 JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example 

Beispiel für optionale Java-Methoden

 import java.util.Optional; public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; str[5] = 'JAVA OPTIONAL CLASS EXAMPLE'; // Setting value for 5th index // It returns an empty instance of Optional class Optional empty = Optional.empty(); System.out.println(empty); // It returns a non-empty Optional Optional value = Optional.of(str[5]); // If value is present, it returns an Optional otherwise returns an empty Optional System.out.println('Filtered value: '+value.filter((s)->s.equals('Abc'))); System.out.println('Filtered value: '+value.filter((s)->s.equals('JAVA OPTIONAL CLASS EXAMPLE'))); // It returns value of an Optional. if value is not present, it throws an NoSuchElementException System.out.println('Getting value: '+value.get()); // It returns hashCode of the value System.out.println('Getting hashCode: '+value.hashCode()); // It returns true if value is present, otherwise false System.out.println('Is value present: '+value.isPresent()); // It returns non-empty Optional if value is present, otherwise returns an empty Optional System.out.println('Nullable Optional: '+Optional.ofNullable(str[5])); // It returns value if available, otherwise returns specified value, System.out.println('orElse: '+value.orElse('Value is not present')); System.out.println('orElse: '+empty.orElse('Value is not present')); value.ifPresent(System.out::println); // printing value by using method reference } } 

Ausgabe:

 Optional.empty Filtered value: Optional.empty Filtered value: Optional[JAVA OPTIONAL CLASS EXAMPLE] Getting value: JAVA OPTIONAL CLASS EXAMPLE Getting hashCode: -619947648 Is value present: true Nullable Optional: Optional[JAVA OPTIONAL CLASS EXAMPLE] orElse: JAVA OPTIONAL CLASS EXAMPLE orElse: Value is not present JAVA OPTIONAL CLASS EXAMPLE