Goiaba - classe de condições prévias

As pré-condições fornecem métodos estáticos para verificar se um método ou um construtor é chamado com o parâmetro adequado ou não. Ele verifica as pré-condições. Seus métodos lançam IllegalArgumentException em caso de falha.

Declaração de Classe

A seguir está a declaração para com.google.common.base.Preconditions classe -

@GwtCompatible
public final class Preconditions
   extends Object

Métodos de aula

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

static void checkArgument(boolean expression)

Garante a veracidade de uma expressão envolvendo um ou mais parâmetros para o método de chamada.

2

static void checkArgument(boolean expression, Object errorMessage)

Garante a veracidade de uma expressão envolvendo um ou mais parâmetros para o método de chamada.

3

static void checkArgument(boolean expression, String errorMessageTemplate, Object. errorMessageArgs)

Garante a veracidade de uma expressão envolvendo um ou mais parâmetros para o método de chamada.

4

static int checkElementIndex(int index, int size)

Garante que o índice especifica um elemento válido em uma matriz, lista ou string de tamanho.

5

static int checkElementIndex(int index, int size, String desc)

Garante que o índice especifique um elemento válido em uma matriz, lista ou string de tamanho.

6

static <T> T checkNotNull(T reference)

Garante que uma referência de objeto passada como parâmetro para o método de chamada não seja nula.

7

static <T> T checkNotNull(T reference, Object errorMessage)

Garante que uma referência de objeto passada como parâmetro para o método de chamada não seja nula.

8

static <T> T checkNotNull(T reference, String errorMessageTemplate, Object... errorMessageArgs)

Garante que uma referência de objeto passada como parâmetro para o método de chamada não seja nula.

9

static int checkPositionIndex(int index, int size)

Garante que o índice especifica uma posição válida em um array, lista ou string de tamanho.

10

static int checkPositionIndex(int index, int size, String desc)

Garante que o índice especifica uma posição válida em um array, lista ou string de tamanho.

11

static void checkPositionIndexes(int start, int end, int size)

Garante que o início e o fim especifiquem posições válidas em uma matriz, lista ou string de tamanho e estejam em ordem.

12

static void checkState(boolean expression)

Garante a verdade de uma expressão que envolve o estado da instância de chamada, mas não envolve nenhum parâmetro para o método de chamada.

13

static void checkState(boolean expression, Object errorMessage)

Garante a verdade de uma expressão que envolve o estado da instância de chamada, mas não envolve nenhum parâmetro para o método de chamada.

14

static void checkState(boolean expression, String errorMessageTemplate, Object... errorMessageArgs)

Garante a verdade de uma expressão que envolve o estado da instância de chamada, mas não envolve nenhum parâmetro para o método de chamada.

Métodos herdados

Esta classe herda métodos da seguinte classe -

  • java.lang.Object

Exemplo de classe de pré-condições

Crie o seguinte programa java usando qualquer editor de sua escolha em dizer C:/> Guava.

GuavaTester.java

import com.google.common.base.Preconditions;

public class GuavaTester {

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

      try {
         System.out.println(guavaTester.sqrt(-3.0));
      } catch(IllegalArgumentException e) {
         System.out.println(e.getMessage());
      }

      try {
         System.out.println(guavaTester.sum(null,3));
      } catch(NullPointerException e) {
         System.out.println(e.getMessage());
      }

      try {
         System.out.println(guavaTester.getValue(6));
      } catch(IndexOutOfBoundsException e) {
         System.out.println(e.getMessage());
      }
   }

   public double sqrt(double input) throws IllegalArgumentException {
      Preconditions.checkArgument(input > 0.0,
         "Illegal Argument passed: Negative value %s.", input);
      return Math.sqrt(input);
   }

   public int sum(Integer a, Integer b) {
      a = Preconditions.checkNotNull(a, "Illegal Argument passed: First parameter is Null.");
      b = Preconditions.checkNotNull(b, "Illegal Argument passed: Second parameter is Null.");

      return a+b;
   }

   public int getValue(int input) {
      int[] data = {1,2,3,4,5};
      Preconditions.checkElementIndex(input,data.length, "Illegal Argument passed: Invalid index.");
      return 0;
   }
}

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.

Illegal Argument passed: Negative value -3.0.
Illegal Argument passed: First parameter is Null.
Illegal Argument passed: Invalid index. (6) must be less than size (5)