Необязательный — неизменный объект, используемый для хранения ненулевого объекта. Необязательный объект используется для представления нулевого значения с отсутствующим значением. Этот класс имеет различные служебные методы, облегчающие коду обработку значений как доступных или недоступных вместо проверки нулевых значений.
Декларация класса
Ниже приводится объявление для класса 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
Смотрите результат.