Java predstavila novú triedu Optional v jdk8. Je to verejná záverečná trieda a používa sa na riešenie výnimiek NullPointerException v aplikácii Java. Ak chcete použiť túto triedu, musíte importovať balík java.util. Poskytuje metódy, ktoré sa používajú na kontrolu prítomnosti hodnoty pre konkrétnu premennú.
Java voliteľné metódy triedy
Metódy | Popis |
---|---|
public static Voliteľné empty() | Vráti prázdny voliteľný objekt. Pre túto voliteľnú položku nie je prítomná žiadna hodnota. |
public static Voliteľné z (hodnota T) | Vráti voliteľné so zadanou súčasnou nenulovou hodnotou. |
public static Voliteľné s možnosťou Nullable (hodnota T) | Ak nie je null, vráti voliteľnú hodnotu popisujúcu zadanú hodnotu, inak vráti prázdnu voliteľnú hodnotu. |
verejné T get() | Ak je v tomto voliteľnom prítomná hodnota, vráti hodnotu, inak vyvolá NoSuchElementException. |
public boolean isPresent() | Ak je prítomná hodnota, vráti hodnotu true, inak hodnotu false. |
verejná neplatnosť, ak je prítomná (spotrebiteľ, spotrebiteľ) | Ak je prítomná hodnota, vyvolajte zadaného spotrebiteľa s hodnotou, inak nerobte nič. |
public Voliteľný filter (predikátový predikát) | Ak je prítomná hodnota a hodnota sa zhoduje s daným predikátom, vráťte voliteľné popisujúce hodnotu, v opačnom prípade vráťte prázdne voliteľné. |
verejná Voliteľná mapa (mapovač funkcií) | Ak je prítomná hodnota, použite na ňu poskytnutú funkciu mapovania a ak výsledok nie je nulový, vráťte voliteľné s popisom výsledku. V opačnom prípade vráťte prázdne voliteľné. |
public Voliteľná plochá mapa (Funkcia super T,Optional mapper) | Ak je prítomná hodnota, použite na ňu poskytnutú funkciu mapovania s voliteľným ložiskom, vráťte výsledok, inak vráťte prázdnu voliteľnú. |
verejné T aleboElse (T iné) | Ak je prítomná, vráti hodnotu, v opačnom prípade vráti inú. |
public T orElseGet (Iný dodávateľ) | Vráti hodnotu, ak je prítomná, inak vyvolá iné a vráti výsledok tohto vyvolania. |
public T orElseThrow (výnimka dodávateľaDodávateľ) hodí X extends Throwable | Vráti obsiahnutú hodnotu, ak je prítomná, inak vyvolá výnimku, ktorú vytvorí poskytnutý dodávateľ. |
verejný boolovský rovná sa (objekt objektu) | Označuje, či sa nejaký iný objekt „rovná“ tejto voliteľnej alebo nie. Druhý objekt sa považuje za rovnaký, ak:
|
public int hashCode() | Vráti hodnotu hash kódu súčasnej hodnoty, ak existuje, alebo vráti 0 (nulu), ak nie je prítomná žiadna hodnota. |
verejný reťazec toString() | Vracia neprázdnu reprezentáciu reťazca tejto voliteľnej položky vhodnej na ladenie. Presný formát prezentácie nie je špecifikovaný a môže sa líšiť medzi implementáciami a verziami. |
Príklad: Program Java bez použitia voliteľného
V nasledujúcom príklade nepoužívame voliteľnú triedu. Tento program sa nenormálne ukončí a vyvolá výnimku nullPointerException.
public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } }
Výkon:
koliesko myši sa neposúva správne
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
Aby sme sa vyhli abnormálnemu ukončeniu, používame voliteľnú triedu. V nasledujúcom príklade používame voliteľné. Náš program sa teda môže spustiť bez zlyhania.
Java Voliteľný Príklad: Ak hodnota nie je prítomná
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'); } }
Výkon:
string value is not present
Java Voliteľný Príklad: Ak je hodnota prítomná
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'); } }
Výkon:
java optional class example
Ďalší voliteľný príklad 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()); } }
Výkon:
kto je urfi javed
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
Príklad voliteľných metód 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 } }
Výkon:
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