Java esitteli uuden luokan Valinnainen jdk8:ssa. Se on julkinen loppuluokka ja sitä käytettiin käsittelemään NullPointerExceptionia Java-sovelluksessa. Sinun on tuotava java.util-paketti käyttääksesi tätä luokkaa. Se tarjoaa menetelmiä, joilla tarkistetaan tietyn muuttujan arvon olemassaolo.
Java Valinnaiset luokkamenetelmät
menetelmät | Kuvaus |
---|---|
public static Valinnainen tyhjä() | Se palauttaa tyhjän valinnaisen objektin. Tälle valinnaiselle ei ole arvoa. |
julkinen staattinen valinnainen (T-arvo) | Se palauttaa valinnaisen arvon määritetyllä nykyisellä ei-nolla-arvolla. |
julkinen staattinen Valinnainen ofNullable(T-arvo) | Se palauttaa valinnaisen, joka kuvaa määritetyn arvon, jos se ei ole nolla, muussa tapauksessa palauttaa tyhjän valinnaisen. |
julkinen T get() | Jos arvo on tässä valinnaisessa, palauttaa arvon, muussa tapauksessa lähettää NoSuchElementExceptionin. |
julkinen boolean isPresent() | Se palauttaa tosi, jos arvo on läsnä, muussa tapauksessa false. |
julkinen mitätöinti josPresent (kuluttajakuluttaja) | Jos arvo on olemassa, kutsu määritetty kuluttaja arvon kanssa, muuten älä tee mitään. |
julkinen Valinnainen suodatin (predikaattipredikaatti) | Jos arvo on olemassa ja arvo vastaa annettua predikaattia, palauta arvoa kuvaava Valinnainen, muussa tapauksessa palauta tyhjä Valinnainen. |
julkinen Valinnainen kartta (toimintokartoittaja) | Jos arvo on olemassa, käytä siihen annettua kartoitusfunktiota, ja jos tulos ei ole nolla, palauta tulosta kuvaava Valinnainen. Muussa tapauksessa palauta tyhjä Valinnainen. |
julkinen Valinnainen flatMap (toiminto super T,Optional mapper) | Jos arvo on olemassa, käytä siihen toimitettua Optional-bearing -kuvausfunktiota, palauta tulos, muussa tapauksessa palauta tyhjä Valinnainen. |
julkinen T orElse (T muu) | Se palauttaa arvon, jos se on olemassa, muussa tapauksessa palauttaa muun. |
julkinen T orElseGet (toimittaja muu) | Se palauttaa arvon, jos se on olemassa, muussa tapauksessa kutsu muuta ja palauttaa kutsun tuloksen. |
public T orElseThrow(Toimittajan poikkeusToimittaja) heittää X laajenee Heitettävä | Se palauttaa sisällytetyn arvon, jos se on olemassa, muuten heittää poikkeuksen, jonka toimitettu toimittaja luo. |
julkinen looginen yhtälö (Objektiobjekti) | Ilmaisee, onko jokin muu objekti 'sama' tämän valinnaisen kanssa vai ei. Toinen kohde katsotaan samanarvoiseksi, jos:
|
julkinen int hashCode() | Se palauttaa nykyisen arvon hash-koodin arvon, jos sellainen on, tai palauttaa 0 (nolla), jos arvoa ei ole. |
julkinen merkkijono toString() | Se palauttaa ei-tyhjän merkkijonoesityksen tästä valinnaisesta, joka sopii virheenkorjaukseen. Tarkkaa esitysmuotoa ei ole määritelty ja se voi vaihdella toteutusten ja versioiden välillä. |
Esimerkki: Java-ohjelma ilman valinnaista
Seuraavassa esimerkissä emme käytä Optional-luokkaa. Tämä ohjelma päättyy epänormaalisti ja antaa nullPointerExceptionin.
public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } }
Lähtö:
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
Epänormaalin lopettamisen välttämiseksi käytämme Optional-luokkaa. Seuraavassa esimerkissä käytämme valinnaista. Joten ohjelmamme voi toimia ilman kaatumista.
Java Valinnainen Esimerkki: Jos arvoa ei ole läsnä
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'); } }
Lähtö:
string value is not present
Java Valinnainen Esimerkki: Jos arvo on läsnä
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'); } }
Lähtö:
java optional class example
Toinen valinnainen Java-esimerkki
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()); } }
Lähtö:
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
Esimerkki Java valinnaisista menetelmistä
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 } }
Lähtö:
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