Јава је представила нову класу Опционо у јдк8. То је јавна завршна класа и користи се за рад са НуллПоинтерЕкцептион у Јава апликацији. Морате увести пакет јава.утил да бисте користили ову класу. Он пружа методе које се користе за проверу присуства вредности за одређену променљиву.
Јава опционе методе класе
Методе | Опис |
---|---|
публиц статиц Опционо празно() | Враћа празан Опциони објекат. За ову опцију нема вредности. |
публиц статиц Опционо од (Т вредност) | Враћа Опционо са наведеном садашњом вредношћу која није нулта. |
публиц статиц Опционо одНуллабле (Т вредност) | Враћа Опциони опис који описује наведену вредност, ако није нулл, у супротном враћа празно Опционо. |
јавни Т гет() | Ако је вредност присутна у овом Опционом, враћа вредност, у супротном избацује НоСуцхЕлементЕкцептион. |
јавни логички исПресент() | Враћа тачно ако постоји вредност, у супротном нетачно. |
публиц воид ифПресент (потрошач потрошача) | Ако је вредност присутна, позовите наведеног потрошача са вредношћу, у супротном не радите ништа. |
публиц Опциони филтер (предикат предиката) | Ако је вредност присутна, а вредност се поклапа са датим предикатом, вратите Опционо које описује вредност, у супротном вратите празно Опционо. |
јавна Опциона мапа (мапер функција) | Ако је вредност присутна, примените обезбеђену функцију мапирања на њу, а ако резултат није нул, вратите Опциони који описује резултат. У супротном вратите празно Опционо. |
публиц Опциони флатМап(Фунцтион super T,Optional mapper) | Ако је вредност присутна, примените дату функцију мапирања са опционим носиоцима на њу, вратите тај резултат, у супротном вратите празно Опционо. |
јавно Т орЕлсе(Т друго) | Враћа вредност ако је присутна, у супротном враћа отхер. |
јавни Т орЕлсеГет (Друго добављач) | Враћа вредност ако је присутна, у супротном позовите отхер и вратите резултат тог позива. |
публиц Т орЕлсеТхров(Супплиер екцептионСупплиер) баца Кс ектендс Тхровабле | Враћа садржану вредност, ако је присутна, у супротном ствара изузетак који ће креирати обезбеђени добављач. |
јавни логички једнак (Објецт обј) | Означава да ли је неки други објекат 'једнак' овом Опционом или не. Други објекат се сматра једнаким ако:
|
јавни инт хасхЦоде() | Враћа вредност хеш кода садашње вредности, ако постоји, или враћа 0 (нула) ако вредност није присутна. |
јавни стринг тоСтринг() | Враћа непразан стринг приказ овог Опционог који је погодан за отклањање грешака. Тачан формат презентације није специфициран и може се разликовати између имплементација и верзија. |
Пример: Јава програм без коришћења Опционог
У следећем примеру, не користимо Опциону класу. Овај програм се ненормално завршава и баца нуллПоинтерЕкцептион.
public class OptionalExample { public static void main(String[] args) { String[] str = new String[10]; String lowercaseString = str[5].toLowerCase(); System.out.print(lowercaseString); } }
Излаз:
Exception in thread 'main' java.lang.NullPointerException at lambdaExample.OptionalExample.main(OptionalExample.java:6)
Да бисмо избегли абнормални завршетак, користимо Опциону класу. У следећем примеру користимо Опционо. Дакле, наш програм може да се изврши без пада.
Јава Опциони пример: Ако вредност није присутна
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'); } }
Излаз:
string value is not 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'); } }
Излаз:
java optional class example
Још један Јава опциони пример
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()); } }
Излаз:
JAVA OPTIONAL CLASS EXAMPLE JAVA OPTIONAL CLASS EXAMPLE java optional class example
Пример Јава опционих метода
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 } }
Излаз:
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