Wprowadzenie do klasy ObjectUtils

Metody:

allNotNull(Obiekt...wartości) Sprawdza, czy wszystkie obiekty nie są puste
allNull(Obiekt...wartości) Sprawdza, czy wszystkie obiekty są puste
anyNotNull(Obiekt...wartości) Sprawdza, czy co najmniej jeden obiekt nie jest pusty
anyNull(Obiekt... wartości) Sprawdza, czy co najmniej jeden obiekt ma wartość NULL
klon(T obiekt) Klonuje obiekt
cloneIfPossible(T obj) Klonuje obiekt lub zwraca oryginał
porównaj(T c1, T c2) Porównuje obiekty
defaultIfNull(T obiekt, T defaultValue) Zwraca domyślny obiekt, jeśli obiekt ma wartość null
równa się (obiekt obiekt1, obiekt obiekt2) Porównuje dwa obiekty
notEqual(Obiekt obiekt1, Obiekt obiekt2) Sprawdź, czy dwa obiekty nie są równe
firstNonNull(T...wartości) Zwraca pierwszy obiekt, który nie jest pusty
getFirstNonNull (dostawca ... dostawcy) Zwraca pierwszy obiekt, który nie jest pusty
getIfNull(obiekt T, dostawca domyślny dostawca) Zwraca podany obiekt, jeśli nie jest pusty, w przeciwnym razie zwraca wartość Supplier.get() przekazanego dostawcy
hashCode(obiekt) Oblicza hashCode dla obiektu
hashCodeMulti(Obiekt...obiekty) Oblicza hashCode dla grupy obiektów
isEmpty(obiekt obiektu) Sprawdza, czy obiekt jest pusty lub zerowy
isNotEmpty(obiekt obiektu) Sprawdza, czy obiekt nie jest pusty lub zerowy
requireNonEmpty(T obj) Sprawdza, czy obiekt nie jest pusty, w przeciwnym razie zgłasza wyjątek
requireNonEmpty(T obj, ciąg znaków) Sprawdza, czy obiekt nie jest pusty, w przeciwnym razie zgłasza wyjątek
tożsamośćToString(obiekt obiektu) Zwraca ciąg dla obiektu
toString(obiekt obiektu) Zwraca ciąg dla obiektu
toString(Object obiekt, String nullStr) Zwraca ciąg dla obiektu
toString(obiekt obiektu, dostawca dostawca) Zwraca ciąg dla obiektu

Przyjrzyjmy się jednej metodzie z każdej grupy. Mam nadzieję, że będziesz z nich często korzystać, ponieważ są bardzo wygodne i pozwalają uniknąć niepotrzebnego kodu.

ObjectUtils.compare()

Metoda porównuje obiekty w taki sam sposób jak komparator: większy niż, mniejszy lub równy. Może być używany do sortowania obiektów.

Sygnatura metody wygląda następująco:

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

Jeśli trzeci parametr ( nullGreater ) ma wartość true , wartość null zawsze będzie uważana za większą niż wartość inna niż null . Metoda zwraca wartość dodatnią, jeśli c1> c2, ujemną, jeśli c1<c2, i 0, jeśli c1 == c2.

Przykład:

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

Program wyświetli wynik:

0
1
-8

ObjectUtils.isNotEmpty()

Metoda isNotEmpty() sprawdza, czy przekazany do niej obiekt nie jest ani pusty, ani null .

Sygnatura metody:

public static boolean isNotEmpty(final Object object)

Przykład:

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

Wynik zostanie wyświetlony na ekranie:

false
true
false

java.util.Obiekty

Programistom Javy bardzo spodobał się pomysł ObjectUtils , więc w JDK 7 dodali własny:

isNull(obiektobiektu) Sprawdza, czy obiekt jest pusty
nonNull(obiekt obiektu) Sprawdza, czy obiekt nie jest pusty
toString(Obiekt) Konwertuje obiekt na ciąg znaków
toString(Objecto, String nullDefault) Konwertuje obiekt na ciąg znaków
wartość logiczna równa się (obiekt a, obiekt b) Porównuje obiekty
boolean deepEquals(Obiekt a,Obiekt b) Porównuje obiekty
T requireNonNull(T obj) Sprawdza, czy przekazany parametr nie jest pusty
T requireNonNull(T obj,String komunikat) Sprawdza, czy przekazany parametr nie jest pusty
int hashCode(Obiekt o) Oblicza hashCode dla obiektu
int hash (Obiekt...wartości) Oblicza hashCode dla grupy obiektów
int porównaj(T a,T b,Komparator c) Porównuje obiekty

Ponieważ klasa java.util.Objects jest częścią pakietu JDK, zaleca się używanie jej w kodzie.

Ważne jest, aby pamiętać, że kiedy czytasz kod innej osoby, najprawdopodobniej natkniesz się na opcje z ObjectUtils , co często zdarza się w open source. Tutaj możesz zobaczyć , czym się różnią.