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ó super T,Optional mapper) | 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:
|
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