Introduksjon til ObjectUtils-klassen

Metoder:

allNotNull(Objekt...verdier) Sjekker at alle objekter ikke er null
allNull(Objekt...verdier) Sjekker at alle objekter er null
anyNotNull(Objekt...verdier) Sjekker at minst ett objekt ikke er null
anyNull(Objekt... verdier) Sjekker at minst ett objekt er null
klone (T obj) Kloner et objekt
cloneIfPossible(T obj) Kloner et objekt eller returnerer originalen
sammenlign (T c1, T c2) Sammenligner objekter
defaultIfNull(T-objekt, T defaultValue) Returnerer standardobjektet hvis objektet er null
lik(Objekt objekt1, Objekt objekt2) Sammenligner to objekter
notEqual(Objekt objekt1, Objekt objekt2) Sjekk om to objekter ikke er like
firstNonNull(T...verdier) Returnerer det første objektet som ikke er null
getFirstNonNull(leverandør ... leverandører) Returnerer det første objektet som ikke er null
getIfNull(T-objekt, leverandør standardleverandør) Returnerer det gitte objektet hvis det ikke er null, ellers returnerer Supplier.get() verdien til den beståtte leverandøren
hashkode(obj) Beregner hashCode for et objekt
hashCodeMulti(Objekt... objekter) Beregner hashCode for en gruppe objekter
isEmpty(Objektobjekt) Sjekker om et objekt er tomt eller null
isNotEmpty(Objektobjekt) Sjekker om et objekt ikke er tomt eller null
requireNonEmpty(T obj) Sjekker om et objekt ikke er null, ellers gir det et unntak
requireNonEmpty(T obj, strengmelding) Sjekker om et objekt ikke er null, ellers gir det et unntak
identityToString(Objektobjekt) Returnerer en streng for et objekt
toString(Object obj) Returnerer en streng for et objekt
toString(Object obj, String nullStr) Returnerer en streng for et objekt
toString(Objekt obj, leverandør leverandør) Returnerer en streng for et objekt

La oss se på én metode fra hver gruppe. Jeg håper du vil bruke dem ofte, fordi de er veldig praktiske og lar deg unngå unødvendig kode.

ObjectUtils.compare()

Metoden sammenligner objekter på samme måte som komparator: større enn, mindre enn eller lik. Den kan brukes til å sortere objekter.

Metodesignaturen ser slik ut:

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

Hvis den tredje parameteren ( nullGreater ) er sann , vil null alltid anses som større enn ikke - null . Metoden returnerer positiv hvis c1> c2, negativ hvis c1<c2, og 0 hvis c1 == c2.

Eksempel:

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

Programmet vil vise resultatet:

0
1
-8

ObjectUtils.isNotEmpty()

Metoden isNotEmpty() kontrollerer at objektet som sendes til det verken er tomt eller null .

Metode signatur:

public static boolean isNotEmpty(final Object object)

Eksempel:

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

Resultatet vil vises på skjermen:

false
true
false

java.util.Objects

Java-utviklerne likte ideen med ObjectUtils , så i JDK 7 la de til sine egne:

isNull(Objectobj) Sjekker om et objekt er null
nonNull(Object obj) Sjekker om et objekt ikke er null
toString(Objecto) Konverterer et objekt til en streng
toString(Objecto, String nullDefault) Konverterer et objekt til en streng
boolsk lik (Objekt a, Objekt b) Sammenligner objekter
boolean deepEquals(Objekt a,Objekt b) Sammenligner objekter
T requireNonNull(T obj) Sjekker om den beståtte parameteren ikke er null
T requireNonNull(T obj,String message) Sjekker om den beståtte parameteren ikke er null
int hashCode(Objekt o) Beregner hashCode for et objekt
int hash(Objekt...verdier) Beregner hashCode for en gruppe objekter
int compare(T a,T b,Comparator c) Sammenligner objekter

Siden java.util.Objects- klassen er en del av JDK, anbefales det at du bruker den i koden.

Det er viktig å merke seg at når du leser andres kode, vil du mest sannsynlig komme over alternativer fra ObjectUtils , dette skjer ofte i åpen kildekode. Her kan du se hvordan de skiller seg.