有了Objects類我們可以簡化一些代碼上的邏輯,我們一起看一下Objects有哪些常用的方法:
public static boolean equals(Object a, Object b) { // 比較兩個對象是否相等 return (a == b) || (a != null && a.equals(b)); }
public static boolean deepEquals(Object a, Object b) { if (a == b) return true; else if (a == null || b == null) return false; else return Arrays.deepEquals0(a, b); }
public static <T> int compare(T a, T b, Comparator<? super T> c) {//自定義比較器 return (a == b) ? 0 : c.compare(a, b); }
public static <T> T requireNonNull(T obj) {//不接受為NULL值 if (obj == null) throw new NullPointerException(); return obj; }
public static <T> T requireNonNull(T obj, String message) { if (obj == null) throw new NullPointerException(message); return obj; }
public static boolean isNull(Object obj) {//判空 return obj == null; }
public static boolean nonNull(Object obj) {//不為空 return obj != null; }
public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier) { if (obj == null) throw new NullPointerException(messageSupplier.get()); return obj; }