logo

Izbirni razred Java

Java je v jdk8 predstavila nov razred Optional. Je javni končni razred in se uporablja za obravnavo NullPointerException v aplikaciji Java. Za uporabo tega razreda morate uvoziti paket java.util. Ponuja metode, ki se uporabljajo za preverjanje prisotnosti vrednosti za določeno spremenljivko.

Izbirne metode razreda Java

Metode Opis
javni statični Izbirno prazno() Vrne prazen izbirni objekt. Za to možnost ni nobene vrednosti.
javni statični Izbirno od (vrednost T) Vrne izbirno vrednost s podano trenutno neničelno vrednostjo.
javni statični Izbirno ofNullable (vrednost T) Vrne Optional, ki opisuje podano vrednost, če ni ničelna, sicer vrne prazno Optional.
javni T get() Če je vrednost prisotna v tej možnosti, vrne vrednost, sicer vrže NoSuchElementException.
javni logični isPresent() Vrne true, če je prisotna vrednost, sicer pa false.
public void ifPresent(potrošnik potrošnik) Če je vrednost prisotna, prikličite navedeni porabnik z vrednostjo, sicer ne storite ničesar.
javni Izbirni filter (predikat predikat) Če je vrednost prisotna in se vrednost ujema z danim predikatom, vrnite izbirno vrednost, ki opisuje vrednost, sicer vrnite prazno izbirno.
javni izbirni zemljevid (preslikava funkcij) Če je vrednost prisotna, zanjo uporabite ponujeno funkcijo preslikave in če rezultat ni ničelni, vrnite Izbirno, ki opisuje rezultat. V nasprotnem primeru vrnite prazno Izbirno.
public Izbirni flatMap(funkcija Če je vrednost prisotna, zanjo uporabite ponujeno funkcijo preslikave izbirnega ležaja, vrnite ta rezultat, sicer vrnite prazno izbirno.
javni T orElse(T other) Vrne vrednost, če je prisotna, sicer vrne drugo.
public T orElseGet(Dobavitelj drugo) Vrne vrednost, če je prisotna, sicer pokliče other in vrne rezultat tega klicanja.
public T orElseThrow(Dobavitelj izjemaDobavitelj) vrže X razširi Throwable Vrne vsebovano vrednost, če je prisotna, sicer vrže izjemo, ki jo ustvari navedeni dobavitelj.
javno logično je enako (objekt obj) Označuje, ali je nek drug objekt 'enakovreden' tej izbirni ali ne. Drugi predmet se šteje za enak, če:
  • Je tudi neobvezna in;
  • Oba primera nimata prisotne vrednosti oz.
  • sedanje vrednosti so med seboj 'enake' prek equals().
public int hashCode() Vrne vrednost zgoščene kode trenutne vrednosti, če obstaja, ali vrne 0 (nič), če vrednost ni prisotna.
public String toString() Vrne neprazno predstavitev niza te izbire, ki je primerna za odpravljanje napak. Natančen format predstavitve ni določen in se lahko razlikuje med implementacijami in različicami.

Primer: Program Java brez uporabe Optional

V naslednjem primeru ne uporabljamo izbirnega razreda. Ta program se nenormalno zaključi in vrže izjemo nullPointerException.

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

Izhod:

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

Da bi se izognili nenormalni prekinitvi, uporabljamo izbirni razred. V naslednjem primeru uporabljamo Optional. Torej se naš program lahko izvaja brez zrušitve.


Izbirni primer Java: če vrednost ni prisotna

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

Izhod:

 string value is not present 

Izbirni primer Java: Če je vrednost prisotna

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

Izhod:

 java optional class example 

Še en izbirni primer 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()); } } 

Izhod:

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

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

Izhod:

 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