Java 8 – Optionale Klasse
Optional ist ein Containerobjekt, das verwendet wird, um Nicht-Null-Objekte zu enthalten. Optionales Objekt wird verwendet, um null mit fehlendem Wert darzustellen. Diese Klasse verfügt über verschiedene Hilfsmethoden, um Code zu erleichtern, Werte als „verfügbar“ oder „nicht verfügbar“ zu behandeln, anstatt Nullwerte zu prüfen. Es wurde in Java 8 eingeführt und ähnelt dem, was Optional in Guava ist.
Klassenerklärung
Es folgt die Deklaration für java.util.Optional
public final class Optional<T> extends Object
Klassenmethode
Sr.No. | Methode &Beschreibung |
---|---|
1 |
statisch Gibt eine leere optionale Instanz zurück. |
2 | boolean equals(Object obj) Gibt an, ob ein anderes Objekt "gleich" diesem Optional ist. |
3 |
Optional Wenn ein Wert vorhanden ist und der Wert mit einem gegebenen Prädikat übereinstimmt, wird ein Optional zurückgegeben, das den Wert beschreibt, andernfalls wird ein leeres Optional zurückgegeben. |
4 | Optional flatMap(Function super T,Optional> mapper) Wenn ein Wert vorhanden ist, wendet es die bereitgestellte Zuordnungsfunktion für optionale Werte darauf an, gibt dieses Ergebnis zurück, andernfalls gibt es ein leeres Optional zurück. |
5 | T get() Wenn ein Wert in diesem Optional vorhanden ist, wird der Wert zurückgegeben, andernfalls wird NoSuchElementException ausgelöst. |
6 | int hashCode() Gibt den Hashcodewert des aktuellen Werts zurück, falls vorhanden, oder 0 (Null), wenn kein Wert vorhanden ist. |
7 | void ifPresent(Consumer super T>consumer) Wenn ein Wert vorhanden ist, ruft es den angegebenen Verbraucher mit dem Wert auf, ansonsten tut es nichts. |
8 | boolean isPresent() Gibt true zurück, wenn ein Wert vorhanden ist, andernfalls false. |
9 | Optional map(Funktion super T,? erweitert U> mapper) Wenn ein Wert vorhanden ist, wendet die bereitgestellte Zuordnungsfunktion darauf an, und wenn das Ergebnis nicht null ist, gibt es ein Optional zurück, das das Ergebnis beschreibt. |
10 |
statisches Gibt ein Optional mit dem angegebenen vorhandenen Nicht-Null-Wert zurück. |
11 |
statisches Gibt ein Optional zurück, das den angegebenen Wert beschreibt, falls nicht null, ansonsten ein leeres Optional. |
12 | T orElse(T andere) Gibt den Wert zurück, falls vorhanden, ansonsten other. |
13 | T orElseGet(Lieferant erweitert T>anderes) Gibt den Wert zurück, falls vorhanden, ruft andernfalls other auf und gibt das Ergebnis dieses Aufrufs zurück. |
14 |
Gibt den enthaltenen Wert zurück, falls vorhanden, löst andernfalls eine Ausnahme aus, die vom bereitgestellten Lieferanten erstellt wird. |
15 | String zuString() Gibt eine nicht-leere Zeichenfolgendarstellung dieser Option zurück, die zum Debuggen geeignet ist. |
Diese Klasse erbt Methoden von der folgenden Klasse −
- java.lang.Object
Optionales Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in beispielsweise C:\> JAVA.
Java8Tester.java
Live-Demoimport java.util.Optional; public class Java8Tester { public static void main(String args[]) { Java8Tester java8Tester = new Java8Tester(); Integer value1 = null; Integer value2 = new Integer(10); //Optional.ofNullable - allows passed parameter to be null. Optional<Integer> a = Optional.ofNullable(value1); //Optional.of - throws NullPointerException if passed parameter is null Optional<Integer> b = Optional.of(value2); System.out.println(java8Tester.sum(a,b)); } public Integer sum(Optional<Integer> a, Optional<Integer> b) { //Optional.isPresent - checks the value is present or not System.out.println("First parameter is present: " + a.isPresent()); System.out.println("Second parameter is present: " + b.isPresent()); //Optional.orElse - returns the value if present otherwise returns //the default value passed. Integer value1 = a.orElse(new Integer(0)); //Optional.get - gets the value, value should be present Integer value2 = b.get(); return value1 + value2; } }
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt −
C:\JAVA>javac Java8Tester.java
Führen Sie nun den Java8Tester wie folgt aus −
C:\JAVA>java Java8Tester
Es sollte die folgende Ausgabe erzeugen −
First parameter is present: false Second parameter is present: true 10
Java