logo

Java valgfri klasse

Java introducerede en ny klasse Valgfri i jdk8. Det er en offentlig afsluttende klasse og bruges til at håndtere NullPointerException i Java-applikationen. Du skal importere java.util-pakken for at bruge denne klasse. Det giver metoder, der bruges til at kontrollere tilstedeværelsen af ​​værdi for en bestemt variabel.

Java valgfri klassemetoder

Metoder Beskrivelse
offentlig statisk Valgfri tomme() Det returnerer et tomt valgfrit objekt. Der er ingen værdi for denne valgfrie.
offentlig statisk Valgfri (T-værdi) Det returnerer en Optional med den angivne nuværende ikke-nul værdi.
offentlig statisk Valgfri afNullable(T-værdi) Den returnerer en Optional, der beskriver den angivne værdi, hvis den ikke er nul, ellers returnerer den en tom Optional.
offentlig T get() Hvis en værdi er til stede i denne Valgfri, returnerer værdien, ellers kaster NoSuchElementException.
offentlig boolean er til stede() Det returnerer sandt, hvis der er en værdi til stede, ellers falsk.
offentlig void ifPresent(Forbrugerforbruger) Hvis en værdi er til stede, påberåb den angivne forbruger med værdien, ellers gør ingenting.
offentligt Valgfrit filter (prædikatprædikat) Hvis en værdi er til stede, og værdien matcher det givne prædikat, returner en Optional, der beskriver værdien, ellers returner en tom Optional.
offentligt Valgfrit kort (Funktionskortlægning) Hvis en værdi er til stede, skal du anvende den medfølgende tilknytningsfunktion på den, og hvis resultatet ikke er nul, returneres en valgfri, der beskriver resultatet. Ellers returner en tom Valgfri.
offentlig Valgfri flatMap(Funktion Hvis en værdi er til stede, skal du anvende den medfølgende valgfri-bærende kortlægningsfunktion på den, returnere det resultat, ellers returnere en tom valgfri.
offentlig T ellerElse(T andet) Den returnerer værdien, hvis den er til stede, ellers returnerer den anden.
offentlig T orElseGet(Anden leverandør) Den returnerer værdien, hvis den er til stede, ellers påkald en anden og returner resultatet af den påkaldelse.
public T orElseThrow(Supplier exceptionSupplier) kaster X udvider Throwable Det returnerer den indeholdte værdi, hvis den er til stede, ellers medfører en undtagelse, der skal oprettes af den leverede leverandør.
offentlig boolesk lig (Object obj) Angiver, om et andet objekt er 'lig med' dette valgfrie eller ej. Det andet objekt betragtes som lig, hvis:
  • Det er også en valgfri og;
  • Begge tilfælde har ingen værdi til stede eller;
  • de nuværende værdier er 'lige med' hinanden via equals().
public int hashCode() Det returnerer hash-kodeværdien af ​​den aktuelle værdi, hvis nogen, eller returnerer 0 (nul), hvis der ikke er nogen værdi.
public String toString() Det returnerer en ikke-tom strengrepræsentation af denne valgfrie egnet til fejlretning. Det nøjagtige præsentationsformat er uspecificeret og kan variere mellem implementeringer og versioner.

Eksempel: Java-program uden brug af valgfrit

I det følgende eksempel bruger vi ikke Optional class. Dette program afsluttes unormalt og kaster en nullPointerException.

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

Produktion:

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

For at undgå den unormale opsigelse bruger vi Optional klasse. I det følgende eksempel bruger vi Optional. Så vores program kan køre uden at gå ned.


Java valgfrit eksempel: Hvis værdi ikke er til stede

 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'); } } 

Produktion:

 string value is not present 

Java valgfrit eksempel: Hvis værdi er til stede

 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'); } } 

Produktion:

 java optional class example 

Et andet Java valgfrit eksempel

 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()); } } 

Produktion:

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

Eksempel på Java valgfri metoder

 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 } } 

Produktion:

 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