Introduzione alla classe ObjectUtils

Metodi:

allNotNull(Oggetto...valori) Verifica che tutti gli oggetti non siano nulli
allNull(Oggetto...valori) Verifica che tutti gli oggetti siano nulli
anyNotNull(Oggetto...valori) Verifica che almeno un oggetto non sia nullo
anyNull(Oggetto... valori) Verifica che almeno un oggetto sia nullo
clone(T oggetto) Clona un oggetto
cloneIfPossible(T obj) Clona un oggetto o restituisce l'originale
confronta(T c1, T c2) Confronta gli oggetti
defaultIfNull(T oggetto, T defaultValue) Restituisce l'oggetto predefinito se oggetto è nullo
equals(Oggetto oggetto1, Oggetto oggetto2) Confronta due oggetti
notEqual(Oggetto oggetto1, Oggetto oggetto2) Controlla se due oggetti non sono uguali
firstNonNull(T...valori) Restituisce il primo oggetto che non è nullo
getFirstNonNull(Fornitore ... fornitori) Restituisce il primo oggetto che non è nullo
getIfNull(T oggetto, Fornitore defaultFornitore) Restituisce l'oggetto specificato se non è nullo, altrimenti restituisce il valore Supplier.get() del fornitore passato
codice hash(obj) Calcola l'hashCode per un oggetto
hashCodeMulti(Oggetto... oggetti) Calcola hashCode per un gruppo di oggetti
isEmpty(Oggetto oggetto) Controlla se un oggetto è vuoto o nullo
isNotEmpty(Oggetto oggetto) Controlla se un oggetto non è vuoto o nullo
requireNonEmpty(T obj) Controlla se un oggetto non è nullo, altrimenti genera un'eccezione
requireNonEmpty(T obj, String messaggio) Controlla se un oggetto non è nullo, altrimenti genera un'eccezione
identityToString(Oggetto oggetto) Restituisce una stringa per un oggetto
toString(Oggetto oggetto) Restituisce una stringa per un oggetto
toString(Oggetto obj, Stringa nullStr) Restituisce una stringa per un oggetto
toString(Oggetto obj, Fornitore fornitore) Restituisce una stringa per un oggetto

Diamo un'occhiata a un metodo di ciascun gruppo. Spero che li userai spesso, perché sono molto convenienti e ti permettono di evitare codice non necessario.

ObjectUtils.compare()

Il metodo confronta gli oggetti allo stesso modo del comparatore: maggiore di, minore di o uguale a. Può essere utilizzato per ordinare gli oggetti.

La firma del metodo è simile a questa:

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 il terzo parametro ( nullGreater ) è true , null sarà sempre considerato maggiore di non null . Il metodo restituisce positivo se c1> c2, negativo se c1<c2 e 0 se c1 == c2.

Esempio:

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();

Il programma visualizzerà il risultato:

0
1
-8

ObjectUtils.isNotEmpty()

Il metodo isNotEmpty() controlla che l'oggetto passato non sia né vuoto né null .

Firma del metodo:

public static boolean isNotEmpty(final Object object)

Esempio:

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));

Il risultato verrà visualizzato sullo schermo:

false
true
false

java.util.Oggetti

Agli sviluppatori Java è piaciuta molto l'idea di ObjectUtils , quindi in JDK 7 hanno aggiunto il proprio:

isNull(Objectobj) Controlla se un oggetto è nullo
nonNull(Oggetto oggetto) Controlla se un oggetto non è nullo
toString(Oggetto) Converte un oggetto in una stringa
toString(Objecto, String nullDefault) Converte un oggetto in una stringa
booleano uguale(Oggetto a,Oggetto b) Confronta gli oggetti
booleano deepEquals(Oggetto a,Oggetto b) Confronta gli oggetti
T requireNonNull(T obj) Controlla se il parametro passato non è nullo
T requireNonNull(T obj,String messaggio) Controlla se il parametro passato non è nullo
int hashCode(Oggetto o) Calcola l'hashCode per un oggetto
int hash(Oggetto...valori) Calcola hashCode per un gruppo di oggetti
int compare(T a,T b,Comparatore c) Confronta gli oggetti

Poiché la classe java.util.Objects fa parte del JDK, si consiglia di utilizzarla nel codice.

È importante notare che quando leggi il codice di qualcun altro, molto probabilmente ti imbatterai in opzioni da ObjectUtils , questo accade spesso in open-source. Qui puoi vedere come differiscono.