logo

Додатковий клас Java

Java представила новий клас Optional у jdk8. Це загальнодоступний кінцевий клас, який використовується для роботи з NullPointerException у програмі Java. Ви повинні імпортувати пакет java.util, щоб використовувати цей клас. Він надає методи, які використовуються для перевірки наявності значення для певної змінної.

Додаткові методи класу Java

методи опис
public static Необов’язковий порожній() Він повертає порожній необов’язковий об’єкт. Для цього параметра немає значення.
public static Необов’язковий для (значення T) Він повертає необов’язковий параметр із вказаним поточним ненульовим значенням.
public static Необов'язковий ofNullable (значення T) Він повертає Optional, що описує вказане значення, якщо воно відмінне від null, інакше повертає порожній Optional.
публічний T get() Якщо значення присутнє в цьому Optional, повертає значення, інакше створює NoSuchElementException.
public boolean isPresent() Він повертає true, якщо є значення, інакше повертає false.
public void ifPresent(споживач споживач) Якщо значення присутнє, викликати вказаного споживача зі значенням, інакше нічого не робити.
public Необов'язковий фільтр (предикатний предикат) Якщо значення присутнє та воно відповідає даному предикату, поверніть Optional, що описує значення, інакше поверніть порожній Optional.
загальнодоступна необов'язкова карта (відповідач функцій) Якщо значення присутнє, застосуйте до нього надану функцію відображення, а якщо результат відмінний від null, поверніть необов’язковий опис результату. В іншому випадку поверніть порожнє необов’язкове значення.
public Додатковий flatMap(функція Якщо значення присутнє, застосуйте до нього надану функцію зіставлення Optional-bearing, поверніть цей результат, інакше поверніть порожній Optional.
громадський T orElse(T other) Він повертає значення, якщо воно є, інакше повертає other.
public T orElseGet(Supplier other) Він повертає значення, якщо воно є, інакше викликає other і повертає результат цього виклику.
public T orElseThrow(Supplier exceptionSupplier) кидає X extends Throwable Він повертає вмістиме значення, якщо воно є, інакше створює виняток, створений наданим постачальником.
публічне логічне значення дорівнює (Object obj) Вказує, чи є якийсь інший об’єкт «рівним» цьому варіанту чи ні. Інший об'єкт вважається рівним, якщо:
  • Це також необов'язковий і;
  • Обидва екземпляри не мають поточного значення або;
  • поточні значення «рівні» одне одному за допомогою equals().
public int hashCode() Він повертає значення хеш-коду поточного значення, якщо воно є, або повертає 0 (нуль), якщо значення немає.
public 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. У наступному прикладі ми використовуємо 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