Guava - classe opcional

Opcional é um objeto imutável usado para conter um objeto não nulo. O objeto opcional é usado para representar nulo com valor ausente. Esta classe possui vários métodos utilitários para facilitar o código para manipular valores como disponíveis ou não disponíveis em vez de verificar valores nulos.

Declaração de Classe

A seguir está a declaração para com.google.common.base.Optional<T> classe -

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

Métodos de aula

Sr. Não Método e Descrição
1

static <T> Optional<T> absent()

Retorna uma instância opcional sem referência contida.

2

abstract Set<T> asSet()

Retorna um conjunto de singleton imutável cujo único elemento é a instância contida, se estiver presente; caso contrário, um conjunto vazio imutável.

3

abstract boolean equals(Object object)

Retorna verdadeiro se o objeto for uma instância opcional e as referências contidas forem iguais ou ambas estiverem ausentes.

4

static <T> Optional<T> fromNullable(T nullableReference)

Se nullableReference não for nulo, retorna uma instância opcional contendo essa referência; caso contrário, retorna absent ().

5

abstract T get()

Retorna a instância contida, que deve estar presente.

6

abstract int hashCode()

Retorna um código hash para esta instância.

7

abstract boolean isPresent()

Retorna verdadeiro se este portador contém uma instância (não nula).

8

static <T> Optional<T> of(T reference)

Retorna uma instância opcional contendo a referência não nula fornecida.

9

abstract Optional<T> or(Optional<? extends T> secondChoice)

Retorna opcional se tiver um valor presente; secondChoice caso contrário.

10

abstract T or(Supplier<? extends T> supplier)

Retorna a instância contida, se estiver presente; fornecedor.get () caso contrário.

11

abstract T or(T defaultValue)

Retorna a instância contida, se estiver presente; caso contrário, defaultValue.

12

abstract T orNull()

Retorna a instância contida, se estiver presente; caso contrário, null.

13

static <T> Iterable<T> presentInstances(Iterable<? extends Optional<? extends T>> optionals)

Retorna o valor de cada instância presente dos opcionais fornecidos, em ordem, ignorando as ocorrências de absent ().

14

abstract String toString()

Retorna uma representação de string para esta instância.

15

abstract <V> Optional<V> transform(Function<? super T,V> function)

Se a instância estiver presente, ela será transformada com a função fornecida; caso contrário, absent () é retornado.

Métodos herdados

Esta classe herda métodos da seguinte classe -

  • java.lang.Object

Exemplo de classe opcional

Crie o seguinte programa java usando qualquer editor de sua escolha em dizer 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;
   }	
}

Verifique o resultado

Compile a classe usando javac compilador da seguinte forma -

C:\Guava>javac GuavaTester.java

Agora execute o GuavaTester para ver o resultado.

C:\Guava>java GuavaTester

Veja o resultado.

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