Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java 8 — необязательный класс

Необязательный объект-контейнер, используемый для хранения ненулевых объектов. Необязательный объект используется для представления null с отсутствующим значением. Этот класс имеет различные служебные методы, облегчающие коду обработку значений как «доступных» или «недоступных» вместо проверки нулевых значений. Он появился в Java 8 и похож на опциональный в Guava.

Объявление класса

Ниже приведено объявление для java.util.Optional. класс —

public final class Optional<T> extends Object

Метод класса

<тд>

статический Необязательный пустой()

Возвращает пустой необязательный экземпляр.

<тд>

логическое равенство (объект obj)

Указывает, является ли какой-либо другой объект «равным» этому необязательному.

<тд>

Необязательный фильтр(Predicate predicate)

Если значение присутствует и значение соответствует заданному предикату, возвращается необязательный параметр, описывающий значение, в противном случае возвращается пустой необязательный элемент.

<тд>

Необязательный flatMap(Функция> сопоставитель)

Если значение присутствует, оно применяет к нему предоставленную функцию сопоставления с факультативом, возвращает этот результат, в противном случае возвращает пустое факультативное значение.

<тд>

Получить()

Если значение присутствует в этом необязательном параметре, возвращает значение, в противном случае генерируется исключение NoSuchElementException.

<тд>

целый хэш-код()

Возвращает значение хэш-кода текущего значения, если оно есть, или 0 (ноль), если значение отсутствует.

<тд>

void ifPresent(Consumer потребитель)

Если значение присутствует, он вызывает указанного потребителя со значением, в противном случае ничего не делает.

<тд>

логическое значение isPresent()

Возвращает true, если присутствует значение, иначе false.

<тд>

Дополнительная карта (функция mapper)

Если значение присутствует, применяет к нему предоставленную функцию сопоставления и, если результат не равен нулю, возвращает необязательный параметр, описывающий результат.

<тд>

статический Необязательный из (значение T)

Возвращает необязательный элемент с указанным текущим ненулевым значением.

<тд>

статический Необязательный ofNullable(значение T)

Возвращает необязательный элемент, описывающий указанное значение, если он не равен нулю, в противном случае возвращает пустой необязательный элемент.

<тд>

T orElse(T другое)

Возвращает значение, если оно присутствует, иначе возвращает другое.

<тд>

T orElseGet(Поставщик другое)

Возвращает значение, если оно присутствует, в противном случае вызывает другое и возвращает результат этого вызова.

<тд>

T orElseThrow(Supplier exceptionSupplier)

Возвращает содержащееся значение, если оно присутствует, в противном случае генерирует исключение, которое должно быть создано предоставленным поставщиком.

<тд>

Строка toString()

Возвращает непустое строковое представление этого параметра, подходящее для отладки.

Сер.№ Метод и описание
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Этот класс наследует методы от следующего класса —

  • java.lang.Объект

Необязательный пример

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
import java.util.Optional;

public class Java8Tester {

   public static void main(String args[]) {
      Java8Tester java8Tester = new Java8Tester();
      Integer value1 = null;
      Integer value2 = new Integer(10);
		
      //Optional.ofNullable - allows passed parameter to be null.
      Optional<Integer> a = Optional.ofNullable(value1);
		
      //Optional.of - throws NullPointerException if passed parameter is null
      Optional<Integer> b = Optional.of(value2);
      System.out.println(java8Tester.sum(a,b));
   }
	
   public Integer sum(Optional<Integer> a, Optional<Integer> b) {
      //Optional.isPresent - checks the value is present or not
		
      System.out.println("First parameter is present: " + a.isPresent());
      System.out.println("Second parameter is present: " + b.isPresent());
		
      //Optional.orElse - returns the value if present otherwise returns
      //the default value passed.
      Integer value1 = a.orElse(new Integer(0));
		
      //Optional.get - gets the value, value should be present
      Integer value2 = b.get();
      return value1 + value2;
   }
}

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

C:\JAVA>javac Java8Tester.java

Теперь запустите Java8Tester следующим образом —

C:\JAVA>java Java8Tester

Он должен произвести следующий вывод —

First parameter is present: false
Second parameter is present: true
10

java

  1. Окончательное ключевое слово Java
  2. Оператор экземпляра Java
  3. Вложенный статический класс Java
  4. Анонимный класс Java
  5. Одноэлементный класс Java
  6. Java-отражение
  7. Класс Java ObjectOutputStream
  8. Дженерики Java
  9. Класс файла Java
  10. Java 9 — необязательные улучшения класса