logo

Допълнителен клас на Java

Java въведе нов клас Optional в jdk8. Това е публичен финален клас и се използва за справяне с NullPointerException в Java приложение. Трябва да импортирате пакет java.util, за да използвате този клас. Той предоставя методи, които се използват за проверка на наличието на стойност за определена променлива.

Незадължителни класови методи на Java

Методи Описание
публичен статик По избор празен() Връща празен незадължителен обект. Няма стойност за тази опция.
public static По избор от (T стойност) Връща незадължително със зададената настояща ненулева стойност.
public static Незадължително ofNullable(T стойност) Той връща опция, описваща определената стойност, ако не е нула, в противен случай връща празна опция.
публичен T get() Ако има стойност в тази опция, връща стойността, в противен случай хвърля NoSuchElementException.
публичен булев isPresent() Връща true, ако има налична стойност, в противен случай false.
public void ifPresent(Потребител потребител) Ако има стойност, извикайте посочения потребител със стойността, в противен случай не правете нищо.
обществен Незадължителен филтър (предикат предикат) Ако има стойност и стойността съответства на дадения предикат, върнете Optional, описващ стойността, в противен случай върнете празен Optional.
публична карта по избор (картограф на функции) Ако е налице стойност, приложете предоставената функция за съпоставяне към нея и ако резултатът не е нулев, върнете Незадължително, описващо резултата. В противен случай върнете празно Незадължително.
public Незадължителен flatMap(функция Ако е налице стойност, приложете към нея предоставената функция за съпоставяне на опционално носене, върнете този резултат, в противен случай върнете празно опционално.
публичен T orElse(T other) Връща стойността, ако присъства, в противен случай връща other.
public T orElseGet(Друго доставчик) Връща стойността, ако е налице, в противен случай извиква other и връща резултата от това извикване.
public T orElseThrow(Supplier exceptionSupplier) хвърля X разширява Throwable Той връща съдържащата се стойност, ако е налице, в противен случай хвърля изключение, което да бъде създадено от предоставения доставчик.
публичен булев е равен (Object obj) Показва дали някой друг обект е „равен на“ този Незадължителен или не. Другият обект се счита за равен, ако:
  • Също така е незадължителен и;
  • И двата случая нямат настояща стойност или;
  • настоящите стойности са „равни“ една на друга чрез equals().
public int hashCode() Връща стойността на хеш кода на текущата стойност, ако има такава, или връща 0 (нула), ако няма налична стойност.
публичен String toString() Той връща непразно низово представяне на тази опция, подходящо за отстраняване на грешки. Точният формат на представяне не е уточнен и може да варира в различните реализации и версии.

Пример: Java програма без използване на Optional

В следващия пример не използваме клас Optional. Тази програма прекратява необичайно и хвърля nullPointerException.

 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) 

За да избегнем необичайното прекратяване, ние използваме незадължителен клас. В следващия пример използваме Optional. Така че нашата програма може да се изпълни без срив.


Пример за избор на Java: Ако стойността не е налична

 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 

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]); 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 

Друг пример за избор на 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()); } } 

Изход:

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

Пример за незадължителни методи на 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 } } 

Изход:

 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