Java introduceerde een nieuwe klasse Optioneel in jdk8. Het is een openbare laatste klasse en wordt gebruikt om met NullPointerException in Java-applicaties om te gaan. U moet het java.util-pakket importeren om deze klasse te kunnen gebruiken. Het biedt methoden die worden gebruikt om de aanwezigheid van waarde voor een bepaalde variabele te controleren.
Java Optionele klassenmethoden
Methoden | Beschrijving |
---|---|
public static Optioneel empty() | Het retourneert een leeg Optioneel object. Er is geen waarde aanwezig voor deze Optioneel. |
publiek statisch Optioneel van(T-waarde) | Het retourneert een Optioneel met de opgegeven huidige niet-null-waarde. |
public static Optioneel ofNullable(T-waarde) | Het retourneert een Optioneel die de opgegeven waarde beschrijft, indien niet nul, en retourneert anders een lege Optioneel. |
openbare T get() | Als er een waarde aanwezig is in deze Optionele optie, wordt de waarde geretourneerd, anders wordt er NoSuchElementException gegenereerd. |
publieke boolean isPresent() | Het retourneert waar als er een waarde aanwezig is, anders onwaar. |
public void ifPresent(consument-consument) | Als er een waarde aanwezig is, roep dan de opgegeven consument aan met de waarde, anders doe je niets. |
public Optioneel filter(Predicaat predikaat) | Als er een waarde aanwezig is en de waarde overeenkomt met het gegeven predikaat, retourneer dan een Optioneel die de waarde beschrijft, en retourneer anders een lege Optioneel. |
publiek Optionele kaart (Functietoewijzer) | Als er een waarde aanwezig is, past u de meegeleverde toewijzingsfunctie erop toe, en als het resultaat niet nul is, retourneert u een Optioneel dat het resultaat beschrijft. Retourneer anders een lege Optioneel. |
public Optioneel flatMap(Function super T,Optional mapper) | Als er een waarde aanwezig is, pas dan de meegeleverde Optioneel-dragende toewijzingsfunctie toe, retourneer dat resultaat, retourneer anders een lege Optioneel. |
openbare T ofElse(T andere) | Het retourneert de waarde indien aanwezig, anders retourneert het andere. |
public T orElseGet(Andere leverancier) | Het retourneert de waarde indien aanwezig, anders roept het andere aan en retourneert het resultaat van die aanroep. |
public T orElseThrow(LeverancieruitzonderingLeverancier) gooit X verlengt Gooibaar | Het retourneert de ingesloten waarde, indien aanwezig, anders wordt er een uitzondering gegenereerd die door de opgegeven leverancier moet worden gemaakt. |
public boolean is gelijk aan (Object obj) | Geeft aan of een ander object 'gelijk is aan' deze Optioneel of niet. Het andere object wordt als gelijk beschouwd als:
|
public int hashCode() | Het retourneert de hashcodewaarde van de huidige waarde, indien aanwezig, of retourneert 0 (nul) als er geen waarde aanwezig is. |
openbare tekenreeks toString() | Het retourneert een niet-lege tekenreeksrepresentatie van deze optionele optie, geschikt voor foutopsporing. Het exacte presentatieformaat is niet gespecificeerd en kan variëren tussen implementaties en versies. |
Voorbeeld: Java-programma zonder Optioneel te gebruiken
In het volgende voorbeeld gebruiken we de optionele klasse niet. Dit programma wordt abnormaal beëindigd en genereert een nullPointerException.
public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } }
Uitgang:
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
Om de abnormale beëindiging te voorkomen, gebruiken we de optionele klasse. In het volgende voorbeeld gebruiken we Optioneel. Ons programma kan dus worden uitgevoerd zonder te crashen.
Java Optioneel Voorbeeld: als waarde niet aanwezig is
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'); } }
Uitgang:
string value is not present
Java Optioneel Voorbeeld: als waarde aanwezig is
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'); } }
Uitgang:
java optional class example
Nog een optioneel Java-voorbeeld
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()); } }
Uitgang:
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
Java Optionele Methoden Voorbeeld
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 } }
Uitgang:
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