Introdução à classe ObjectUtils

Métodos:

allNotNull(Objeto...valores) Verifica se todos os objetos não são nulos
allNull(Objeto...valores) Verifica se todos os objetos são nulos
anyNotNull(Object...values) Verifica se pelo menos um objeto não é nulo
anyNull(Objeto... valores) Verifica se pelo menos um objeto é nulo
clone(T obj) Clona um objeto
cloneSePossível(T obj) Clona um objeto ou retorna o original
compare(T c1, T c2) Compara objetos
defaultIfNull(T objeto, T defaultValue) Retorna o objeto padrão se o objeto for nulo
equals(Objeto objeto1, Objeto objeto2) Compara dois objetos
notEqual(Objeto objeto1, Objeto objeto2) Verifique se dois objetos não são iguais
firstNonNull(T...values) Retorna o primeiro objeto que não é nulo
getFirstNonNull(Fornecedor ... fornecedores) Retorna o primeiro objeto que não é nulo
getIfNull(objeto T, Fornecedor fornecedor padrão) Retorna o objeto fornecido se não for nulo, caso contrário, retorna o valor Supplier.get() do fornecedor passado
hashCode(obj) Calcula o hashCode para um objeto
hashCodeMulti(Objeto... objetos) Calcula hashCode para um grupo de objetos
isEmpty(Objeto objeto) Verifica se um objeto está vazio ou nulo
isNotEmpty(objeto objeto) Verifica se um objeto não está vazio ou nulo
requeremNonEmpty(T obj) Verifica se um objeto não é nulo, caso contrário, lança uma exceção
requireNonEmpty(T obj, String message) Verifica se um objeto não é nulo, caso contrário, lança uma exceção
identidadeToString(objeto objeto) Retorna uma string para um objeto
toString(objeto obj) Retorna uma string para um objeto
toString(Object obj, String nullStr) Retorna uma string para um objeto
toString(Objeto obj, Fornecedor fornecedor) Retorna uma string para um objeto

Vejamos um método de cada grupo. Espero que você os use com frequência, porque eles são muito convenientes e permitem evitar códigos desnecessários.

ObjectUtils.compare()

O método compara objetos da mesma forma que o comparador: maior que, menor que ou igual a. Pode ser usado para classificar objetos.

A assinatura do método fica assim:

public static <T extends Comparable<? super T>> int compare(final T c1, final T c2);
public static <T extends Comparable<? super T>> int compare(final T c1, final T c2, final boolean nullGreater);

Se o terceiro parâmetro ( nullGreater ) for true , null sempre será considerado maior que non- null . O método retorna positivo se c1> c2, negativo se c1<c2 e 0 se c1 == c2.

Exemplo:

String firstValue = "codeGym";
String secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();

firstValue = "codeGym";
secondValue = null;
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();

firstValue = "";
secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();

O programa exibirá o resultado:

0
1
-8

ObjectUtils.isNotEmpty()

O método isNotEmpty() verifica se o objeto passado para ele não é vazio nem nulo .

Assinatura do método:

public static boolean isNotEmpty(final Object object)

Exemplo:

List<String> values = new ArrayList<>();
System.out.println(ObjectUtils.isNotEmpty(values));

values.add("codeGym");
System.out.println(ObjectUtils.isNotEmpty(values));

values = null;
System.out.println(ObjectUtils.isNotEmpty(values));

O resultado será exibido na tela:

false
true
false

java.util.Objects

Os desenvolvedores Java gostaram muito da ideia do ObjectUtils , então no JDK 7 eles adicionaram o seu próprio:

isNull(Objectobj) Verifica se um objeto é nulo
nonNull(Object obj) Verifica se um objeto não é nulo
toString(Objeto) Converte um objeto em uma string
toString(Objeto, String nullDefault) Converte um objeto em uma string
boolean equals(Objeto a,Objeto b) Compara objetos
boolean deepEquals(Objeto a, Objeto b) Compara objetos
T requireNonNull(T obj) Verifica se o parâmetro passado não é nulo
T requireNonNull(T obj,String message) Verifica se o parâmetro passado não é nulo
int hashCode(Objeto o) Calcula o hashCode para um objeto
int hash(Objeto...valores) Calcula hashCode para um grupo de objetos
int compare(T a,T b,Comparador c) Compara objetos

Como a classe java.util.Objects faz parte do JDK, é recomendável usá-la em seu código.

É importante observar que, quando você lê o código de outra pessoa, provavelmente encontrará opções de ObjectUtils , isso geralmente acontece em código aberto. Aqui você pode ver como eles diferem.