Java introduserte en ny klasse Valgfritt i jdk8. Det er en offentlig siste klasse og brukes til å håndtere NullPointerException i Java-applikasjonen. Du må importere java.util-pakken for å bruke denne klassen. Den gir metoder som brukes til å kontrollere tilstedeværelsen av verdi for en bestemt variabel.
Java valgfri klassemetoder
Metoder | Beskrivelse |
---|---|
offentlig statisk Valgfri tom() | Den returnerer et tomt valgfritt objekt. Ingen verdi er tilstede for denne valgfrie. |
offentlig statisk Valgfri (T-verdi) | Den returnerer en valgfri med den angitte verdien som ikke er null. |
offentlig statisk Valgfri avNullable(T-verdi) | Den returnerer en Optional som beskriver den angitte verdien, hvis den ikke er null, ellers returnerer den en tom Optional. |
offentlig T få() | Hvis en verdi er tilstede i denne valgfrie, returnerer verdien, ellers kaster NoSuchElementException. |
offentlig boolsk er tilstede() | Det returnerer sant hvis det er en verdi til stede, ellers usann. |
offentlig void ifPresent (forbrukerforbruker) | Hvis en verdi er til stede, påkall den angitte forbrukeren med verdien, ellers gjør ingenting. |
offentlig Valgfritt filter (predikatpredikat) | Hvis en verdi er tilstede, og verdien samsvarer med det gitte predikatet, returner et valgfritt som beskriver verdien, ellers returner et tomt valgfritt. |
offentlig Valgfritt kart (Funksjonskartlegger) | Hvis en verdi er tilstede, bruk den angitte tilordningsfunksjonen på den, og hvis resultatet ikke er null, returnerer du et valgfritt som beskriver resultatet. Ellers returner en tom Valgfri. |
offentlig Valgfritt flatMap(Function super T,Optional mapper) | Hvis en verdi er tilstede, bruk den angitte valgfrie bærende kartleggingsfunksjonen på den, returner det resultatet, ellers returner et tomt valgfritt. |
offentlig T orElse(T annet) | Den returnerer verdien hvis den er tilstede, ellers returnerer den annen. |
offentlig T orElseGet(andre leverandør) | Den returnerer verdien hvis den er til stede, ellers påkaller andre og returnerer resultatet av den påkallingen. |
offentlig T orElseThrow(Supplier exceptionSupplier) kaster X forlenger Kastbar | Den returnerer den inneholdte verdien, hvis den er til stede, ellers gir den et unntak som opprettes av den oppgitte leverandøren. |
offentlig boolsk lik(Object obj) | Angir om et annet objekt er 'lik' dette valgfrie eller ikke. Det andre objektet anses som likt hvis:
|
offentlig int hashCode() | Den returnerer hash-kodeverdien til nåverdien, hvis noen, eller returnerer 0 (null) hvis ingen verdi er til stede. |
offentlig streng til streng() | Den returnerer en ikke-tom strengrepresentasjon av denne valgfrie egnet for feilsøking. Det nøyaktige presentasjonsformatet er uspesifisert og kan variere mellom implementeringer og versjoner. |
Eksempel: Java-program uten å bruke Valgfritt
I det følgende eksempelet bruker vi ikke Optional class. Dette programmet avsluttes unormalt og sender 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); } }
Produksjon:
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
For å unngå den unormale oppsigelsen bruker vi Optional class. I det følgende eksempelet bruker vi Optional. Så programmet vårt kan kjøres uten å krasje.
Java valgfritt eksempel: Hvis verdi ikke er tilstede
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'); } }
Produksjon:
string value is not present
Java valgfritt eksempel: Hvis verdien er tilstede
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'); } }
Produksjon:
java optional class example
Et annet Java valgfritt 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()); } }
Produksjon:
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
Eksempel på Java valgfrie 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 } }
Produksjon:
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