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
|
Retorna o primeiro objeto que não é nulo |
| getIfNull(objeto T, Fornecedor
|
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
|
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.
GO TO FULL VERSION