Pomocná třída Objects 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 int compare(T a, T b, Comparator 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 requireNonNull(T obj) Zkontroluje, zda zadaný odkaz na objekt není null. static T requireNonNull(T obj, String message) Zkontroluje, zda zadaný odkaz na objekt není null, a pokud ano, vyhodí vlastní NullPointerException. static T requireNonNull(T obj, Supplier 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. 1 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. 2