logo

Volitelná třída Java

Java představila novou třídu Optional v jdk8. Je to veřejná závěrečná třída a používá se k řešení NullPointerException v aplikaci Java. Chcete-li použít tuto třídu, musíte importovat balíček java.util. Poskytuje metody, které se používají ke kontrole přítomnosti hodnoty pro konkrétní proměnnou.

Metody volitelných tříd Java

Metody Popis
public static Volitelné empty() Vrací prázdný volitelný objekt. Tato volitelná položka nemá žádnou hodnotu.
public static Volitelné z (hodnota T) Vrátí nepovinné se zadanou současnou nenulovou hodnotou.
public static Volitelné s možností Null (hodnota T) Vrátí nepovinné popisující zadanou hodnotu, pokud není null, jinak vrací prázdnou nepovinné.
veřejné T get() Pokud je hodnota přítomna v tomto volitelném, vrátí hodnotu, jinak vyvolá NoSuchElementException.
public boolean isPresent() Vrací hodnotu true, pokud je přítomna hodnota, v opačném případě vrací hodnotu false.
veřejná neplatnost, pokud je přítomen (spotřebitel, spotřebitel) Pokud je přítomna hodnota, vyvolejte zadaného spotřebitele s hodnotou, jinak nedělejte nic.
public Volitelný filtr (predikátový predikát) Pokud je přítomna hodnota a hodnota odpovídá danému predikátu, vraťte hodnotu Optional popisující hodnotu, jinak vraťte prázdnou hodnotu Optional.
veřejná Volitelná mapa (mapovač funkcí) Pokud je přítomna hodnota, aplikujte na ni poskytnutou mapovací funkci, a pokud výsledek není null, vraťte volbu s popisem výsledku. Jinak vraťte prázdné Volitelné.
public Volitelná plochá mapa (Function Je-li přítomna hodnota, aplikujte na ni poskytnutou funkci mapování volitelného ložiska, vraťte výsledek, jinak vraťte prázdnou volbu.
veřejné T neboElse (T jiné) Vrátí hodnotu, pokud je přítomna, jinak vrátí jinou.
public T orElseGet (jiný dodavatel) Vrátí hodnotu, pokud je přítomna, jinak vyvolá jinou a vrátí výsledek tohoto vyvolání.
public T orElseThrow (výjimka dodavateleSupplier) hází X extends Throwable Vrátí obsaženou hodnotu, pokud existuje, jinak vyvolá výjimku, kterou vytvoří poskytnutý dodavatel.
public boolean rovná se (Object obj) Označuje, zda je nějaký jiný objekt „rovný“ této volitelné nebo ne. Druhý objekt je považován za rovnocenný, pokud:
  • Je to také volitelná a;
  • Oba případy nemají žádnou přítomnou hodnotu nebo;
  • současné hodnoty jsou si navzájem „rovné“ pomocí equals().
public int hashCode() Vrátí hodnotu hash kódu aktuální hodnoty, pokud existuje, nebo vrátí 0 (nulu), pokud žádná hodnota není přítomna.
veřejný řetězec toString() Vrací neprázdnou řetězcovou reprezentaci této volitelné položky vhodnou pro ladění. Přesný formát prezentace není specifikován a může se lišit mezi implementacemi a verzemi.

Příklad: Java Program bez použití Volitelné

V následujícím příkladu nepoužíváme třídu Optional. Tento program se neobvykle ukončí a vyvolá výjimku 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ýstup:

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

Abychom se vyhnuli abnormálnímu ukončení, používáme třídu Optional. V následujícím příkladu používáme volitelné. Náš program se tedy může spustit bez pádu.


Java Volitelný Příklad: Pokud hodnota není přítomna

 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ýstup:

 string value is not present 

Java Volitelný Příklad: If Value is Present

 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ýstup:

 java optional class example 

Další volitelný pří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ýstup:

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

Příklad volitelných metod 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ýstup:

 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