Учебники

Гуава — необязательный класс

Необязательный — неизменный объект, используемый для хранения ненулевого объекта. Необязательный объект используется для представления нулевого значения с отсутствующим значением. Этот класс имеет различные служебные методы, облегчающие коду обработку значений как доступных или недоступных вместо проверки нулевых значений.

Декларация класса

Ниже приводится объявление для класса com.google.common.base.Optional <T>.

@GwtCompatible(serializable = true)
public abstract class Optional<T>
   extends Object
      implements Serializable

Методы класса

Sr.No Метод и описание
1

static <T> Необязательный <T> отсутствует ()

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

2

абстрактный Set <T> asSet ()

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

3

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

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

4

static <T> Необязательный <T> fromNullable (T nullableReference)

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

5

абстрактный T get ()

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

6

abstract int hashCode ()

Возвращает хеш-код для этого экземпляра.

7

абстрактный логический isPresent ()

Возвращает true, если этот держатель содержит (ненулевой) экземпляр.

8

static <T> Необязательный <T> of (ссылка T)

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

9

абстрактный Необязательный <T> или (Необязательный <? extends T> secondChoice)

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

10

абстрактный T или (Поставщик <? расширяет T> поставщик)

Возвращает содержащийся экземпляр, если он присутствует; supplier.get () в противном случае.

11

абстрактный T или (T defaultValue)

Возвращает содержащийся экземпляр, если он присутствует; defaultValue в противном случае.

12

абстрактный T orNull ()

Возвращает содержащийся экземпляр, если он присутствует; в противном случае

13

static <T> Iterable <T> presentInstances (Iterable <? extends Необязательный <? extends T >> необязательный)

Возвращает значение каждого существующего экземпляра из предоставленных опций по порядку, пропуская вхождения absent ().

14

абстрактная строка toString ()

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

15

абстрактное <V> необязательное преобразование <V> (функция <? super T, V>)

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

static <T> Необязательный <T> отсутствует ()

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

абстрактный Set <T> asSet ()

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

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

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

static <T> Необязательный <T> fromNullable (T nullableReference)

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

абстрактный T get ()

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

abstract int hashCode ()

Возвращает хеш-код для этого экземпляра.

абстрактный логический isPresent ()

Возвращает true, если этот держатель содержит (ненулевой) экземпляр.

static <T> Необязательный <T> of (ссылка T)

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

абстрактный Необязательный <T> или (Необязательный <? extends T> secondChoice)

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

абстрактный T или (Поставщик <? расширяет T> поставщик)

Возвращает содержащийся экземпляр, если он присутствует; supplier.get () в противном случае.

абстрактный T или (T defaultValue)

Возвращает содержащийся экземпляр, если он присутствует; defaultValue в противном случае.

абстрактный T orNull ()

Возвращает содержащийся экземпляр, если он присутствует; в противном случае

static <T> Iterable <T> presentInstances (Iterable <? extends Необязательный <? extends T >> необязательный)

Возвращает значение каждого существующего экземпляра из предоставленных опций по порядку, пропуская вхождения absent ().

абстрактная строка toString ()

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

абстрактное <V> необязательное преобразование <V> (функция <? super T, V>)

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

Унаследованные методы

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

  • java.lang.Object

Пример необязательного класса

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

GuavaTester.java

import com.google.common.base.Optional;

public class GuavaTester {
   public static void main(String args[]) {
      GuavaTester guavaTester = new GuavaTester();

      Integer value1 =  null;
      Integer value2 =  new Integer(10);
      
      //Optional.fromNullable - allows passed parameter to be null.
      Optional<Integer> a = Optional.fromNullable(value1);
      
      //Optional.of - throws NullPointerException if passed parameter is null
      Optional<Integer> b = Optional.of(value2);		

      System.out.println(guavaTester.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.or - returns the value if present otherwise returns
      //the default value passed.
      Integer value1 = a.or(new Integer(0));	

      //Optional.get - gets the value, value should be present
      Integer value2 = b.get();

      return value1 + value2;
   }	
}

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

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

C:\Guava>javac GuavaTester.java

Теперь запустите GuavaTester, чтобы увидеть результат.

C:\Guava>java GuavaTester

Смотрите результат.