logo

Java opcionális osztály

A Java új Opcionális osztályt vezetett be a jdk8-ban. Ez egy nyilvános végső osztály, és a Java alkalmazások NullPointerException-jével foglalkozik. Az osztály használatához importálnia kell a java.util csomagot. Olyan módszereket biztosít, amelyek segítségével ellenőrizhető egy adott változó érték megléte.

Java opcionális osztálymetódusok

Mód Leírás
public static Opcionális üres() Egy üres opcionális objektumot ad vissza. Ennek az Opcionálisnak nincs értéke.
nyilvános statikus Nem kötelező (T érték) Opcionális értéket ad vissza a megadott jelenlegi nem nulla értékkel.
nyilvános statikus Opcionális ofNullable(T érték) A megadott értéket leíró Opcionális értéket ad vissza, ha nem nulla, ellenkező esetben üres opcionális értéket ad vissza.
nyilvános T get() Ha egy érték szerepel ebben az Opcionális mezőben, akkor az értéket adja vissza, ellenkező esetben a NoSuchElementExceptiont dobja.
nyilvános logikai érték isPresent() Igazat ad vissza, ha van jelen érték, ellenkező esetben hamis.
közérvénytelen, ha jelen (fogyasztói fogyasztó) Ha van érték, hívja meg a megadott fogyasztót az értékkel, ellenkező esetben ne tegyen semmit.
public Opcionális szűrő (predikátum predikátum) Ha van egy érték, és az érték megegyezik az adott predikátummal, akkor adjon vissza egy Opcionális értéket, amely leírja az értéket, ellenkező esetben adjon vissza egy üres Opcionális értéket.
nyilvános Opcionális térkép (Funkciótérképező) Ha van egy érték, alkalmazza rá a megadott leképezési függvényt, és ha az eredmény nem nulla, adjon vissza egy Opcionális értéket, amely leírja az eredményt. Ellenkező esetben küldjön vissza egy üres Opcionális.
public Opcionális flatMap(Funkció Ha van egy érték, alkalmazza rá a megadott opcionális hordozó leképezési függvényt, adja vissza az eredményt, ellenkező esetben adjon vissza egy üres opcionális értéket.
nyilvános T orElse (T egyéb) Az értéket adja vissza, ha jelen van, ellenkező esetben az egyéb értéket adja vissza.
nyilvános T orElseGet (egyéb szállító) Visszaadja az értéket, ha jelen van, ellenkező esetben hívja meg a másikat, és adja vissza a meghívás eredményét.
public T orElseThrow(Beszállítói kivételSzállító) dob X kiterjeszti Throwable Visszaadja a benne foglalt értéket, ha jelen van, ellenkező esetben kivételt ad, amelyet a megadott szállító hoz létre.
nyilvános logikai egyenlő (Obj. objektum) Azt jelzi, hogy egy másik objektum „egyenlő”-e ezzel az Opcionális elemmel vagy sem. A másik objektumot akkor tekintjük egyenlőnek, ha:
  • Ez is egy opcionális és;
  • Mindkét példánynak nincs jelen értéke vagy;
  • a jelenlegi értékek 'egyenlőek' egymással az equals() függvényen keresztül.
public int hashCode() Visszaadja a jelenlegi érték hash kódját, ha van ilyen, vagy 0-t (nullát), ha nincs jelen.
public String toString() Ennek az Opcionálisnak a hibakeresésre alkalmas nem üres karakterláncát adja vissza. A pontos megjelenítési formátum nincs meghatározva, és implementációnként és verziónként változhat.

Példa: Java program az Optional használata nélkül

A következő példában nem az Optional osztályt használjuk. Ez a program rendellenesen leáll, és nullPointerException-t dob.

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

Kimenet:

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

A rendellenes befejezés elkerülése érdekében az Optional osztályt használjuk. A következő példában az Opcionálist használjuk. Tehát programunk összeomlás nélkül futhat.


Java opcionális példa: Ha az érték nincs jelen

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

Kimenet:

 string value is not present 

Java opcionális példa: Ha az érték jelen van

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

Kimenet:

 java optional class example 

Egy másik Java opcionális példa

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

Kimenet:

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

Java opcionális metódusok példa

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

Kimenet:

 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