Java a introdus o nouă clasă Opțională în jdk8. Este o clasă finală publică și folosită pentru a face față NullPointerException în aplicația Java. Trebuie să importați pachetul java.util pentru a utiliza această clasă. Acesta oferă metode care sunt utilizate pentru a verifica prezența valorii pentru o anumită variabilă.
câte taste au tastaturile
Metode de clasă opționale Java
Metode | Descriere |
---|---|
public static Opțional empty() | Returnează un obiect Opțional gol. Nu este prezentă nicio valoare pentru acest opțional. |
public static Opțional pentru (valoare T) | Returnează un Opțional cu valoarea prezentă non-nulă specificată. |
public static Opțional ofNullable (valoare T) | Returnează un Opțional care descrie valoarea specificată, dacă nu este nul, în caz contrar returnează un Opțional gol. |
public T get() | Dacă o valoare este prezentă în acest Opțional, returnează valoarea, în caz contrar, aruncă NoSuchElementException. |
public boolean isPresent() | Returnează adevărat dacă există o valoare prezentă, în caz contrar, fals. |
public void ifPresent (consumator) | Dacă este prezentă o valoare, invocați consumatorul specificat cu valoarea, altfel nu faceți nimic. |
public Filtru opțional (predicat predicat) | Dacă o valoare este prezentă și valoarea se potrivește cu predicatul dat, returnați un Opțional care descrie valoarea, în caz contrar returnați un Opțional gol. |
public Hartă opțională (Function mapper) | Dacă este prezentă o valoare, aplicați-i funcția de mapare furnizată și, dacă rezultatul este non-null, returnați un Opțional care descrie rezultatul. În caz contrar, returnați un Opțional gol. |
public Opțional flatMap (Funcția super T,Optional mapper) | Dacă este prezentă o valoare, aplicați-i funcția de mapare opțională furnizată, returnați acel rezultat, altfel returnați un Opțional gol. |
public T orElse(T altul) | Returnează valoarea dacă este prezentă, în caz contrar returnează alta. |
public T orElseGet (altul furnizor) | Returnează valoarea dacă este prezentă, în caz contrar invocă other și returnează rezultatul acelei invocări. |
public T orElseThrow(Excepție Furnizor Furnizor) aruncă X extinde Throwable | Returnează valoarea conținută, dacă este prezentă, altfel se aruncă o excepție care trebuie creată de furnizorul furnizat. |
public boolean equals(Object object) | Indică dacă un alt obiect este „egal cu” acest Opțional sau nu. Celălalt obiect este considerat egal dacă:
|
public int hashCode() | Returnează valoarea codului hash a valorii prezente, dacă există, sau returnează 0 (zero) dacă nu este prezentă nicio valoare. |
public String toString() | Returnează o reprezentare șir non-vid a acestui Opțional adecvat pentru depanare. Formatul exact de prezentare este nespecificat și poate varia între implementări și versiuni. |
Exemplu: Program Java fără a utiliza opțional
În exemplul următor, nu folosim clasa Opțională. Acest program se termină anormal și lansează o excepție nullPointerException.
public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } }
Ieșire:
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
Pentru a evita terminarea anormală, folosim clasa Opțională. În exemplul următor, folosim Opțional. Deci, programul nostru se poate executa fără să se blocheze.
Exemplu opțional Java: dacă valoarea nu este prezentă
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'); } }
Ieșire:
string value is not present
Exemplu opțional Java: dacă valoarea este prezentă
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'); } }
Ieșire:
stivă java
java optional class example
Un alt exemplu opțional Java
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()); } }
Ieșire:
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
Exemplu de metode opționale Java
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 } }
Ieșire:
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