Java 8 - Optionele klasse
Optioneel is een containerobject dat wordt gebruikt om niet-null-objecten te bevatten. Optioneel object wordt gebruikt om null weer te geven met afwezige waarde. Deze klasse heeft verschillende hulpprogramma's om code te vergemakkelijken om waarden als 'beschikbaar' of 'niet beschikbaar' te verwerken in plaats van null-waarden te controleren. Het is geïntroduceerd in Java 8 en is vergelijkbaar met wat Optioneel is in Guava.
Klasseverklaring
Hieronder volgt de verklaring voor java.util.Optional
public final class Optional<T> extends Object
Klasse Methode
Sr.nr. | Methode en beschrijving |
---|---|
1 |
statisch Retourneert een lege optionele instantie. |
2 | boolean is gelijk aan(Object obj) Geeft aan of een ander object "gelijk is aan" dit Optioneel. |
3 |
Optioneel Als een waarde aanwezig is en de waarde komt overeen met een bepaald predikaat, retourneert het een Optioneel die de waarde beschrijft, anders retourneert het een lege Optioneel. |
4 | Optioneel flatMap(Function super T,Optioneel> mapper) Als er een waarde aanwezig is, past deze de verstrekte toewijzingsfunctie voor optionele lagers erop toe, retourneert dat resultaat en retourneert anders een lege Optioneel. |
5 | T get() Als er een waarde aanwezig is in deze Optioneel, wordt de waarde geretourneerd, anders wordt NoSuchElementException gegenereerd. |
6 | int hashCode() Retourneert de hash-codewaarde van de huidige waarde, indien aanwezig, of 0 (nul) als er geen waarde aanwezig is. |
7 | void ifPresent(Consumer super T> consumer) Als een waarde aanwezig is, roept het de gespecificeerde consument op met de waarde, anders doet het niets. |
8 | boolean isPresent() Retourneert waar als er een waarde aanwezig is, anders onwaar. |
9 | Optionele map(Function super T,? extends U> mapper) Als een waarde aanwezig is, wordt de verstrekte toewijzingsfunctie erop toegepast en als het resultaat niet-null is, wordt een Optioneel geretourneerd dat het resultaat beschrijft. |
10 |
statisch Retourneert een Optioneel met de opgegeven huidige niet-null-waarde. |
11 |
statisch Retourneert een Optioneel die de opgegeven waarde beschrijft, indien niet-null, anders retourneert een lege Optioneel. |
12 | T ofElse(T andere) Retourneert de waarde indien aanwezig, anders retourneert andere. |
13 | T orElseGet(Leverancier breidt T> overig uit) Retourneert de waarde indien aanwezig, anders roept andere op en retourneert het resultaat van die aanroep. |
14 |
Retourneert de ingesloten waarde, indien aanwezig, anders wordt een uitzondering gegenereerd die door de opgegeven leverancier moet worden gemaakt. |
15 | String toString() Retourneert een niet-lege tekenreeksrepresentatie van deze Optioneel die geschikt is voor foutopsporing. |
Deze klasse erft methoden van de volgende klasse −
- java.lang.Object
Optioneel voorbeeld
Maak het volgende Java-programma met een editor naar keuze, bijvoorbeeld 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; } }
Verifieer het resultaat
Stel de klas samen met javac compiler als volgt −
C:\JAVA>javac Java8Tester.java
Voer nu de Java8Tester als volgt uit −
C:\JAVA>java Java8Tester
Het zou de volgende output moeten produceren −
First parameter is present: false Second parameter is present: true 10
Java