Pomocná třída Objects

Tomáš Pitner, Radek Ošlejšek

Pomocná třída Objects

  • Třída dostupná od Javy 8

  • Nabízí praktické statické metody obecně využitelné pro všechny objekty:

    • kalkulace hash-kódů (hash, hashCode),

    • test/vynucení nenulovosti (requireNonNull),

    • hluboké porovnání (deepEquals)

Porovnání objektů

static <T> int compare(T a, T b, Comparator<? super T> c)

Vrací 0, pokud jsou argumenty shodné, a c.compare(a, b) v opačném případě.

static boolean deepEquals(Object a, Object b)

Vrací hodnotu true, pokud jsou si argumenty hluboce rovny, a false v opačném případě.

static boolean equals(Object a, Object b)

Vrací true, pokud se argumenty navzájem rovnají, a false v opačném případě.

Vynucení nenulovosti

static <T> T requireNonNull(T obj)

Zkontroluje, zda zadaný odkaz na objekt není null.

static <T> T requireNonNull(T obj, String message)

Zkontroluje, zda zadaný odkaz na objekt není null, a pokud ano, vyhodí vlastní NullPointerException.

static <T> T requireNonNull(T obj, Supplier<String> messageSupplier)

Zkontroluje, zda zadaný odkaz na objekt není null, a pokud ano, vyhodí vlastní NullPointerException.

Metody toString

  • zbavuje nás nutnosti testu na nulovost odkazu

  • kratší náhrada o == null ? "null" : o.toString()

    static String toString(Object o)

    Vrací výsledek volání toString pro argument, který není nulový, a null pro nulový argument.

    static String toString(Object o, String nullDefault)

    Vrací výsledek volání toString na první argument, pokud první argument není null, a v opačném případě vrací druhý argument.