/* * * *java 自带工具类 分析 * * */ package java.util; public final class Objects { private Objects() { throw new AssertionError("No java.util.Objects instances for you!"); } 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); } // hash码获取 public static int hashCode(Object o) { return o != null ? o.hashCode() : 0; } // 数组的hashcode public static int hash(Object... values) { return Arrays.hashCode(values); } public static String toString(Object o) { return String.valueOf(o); } // 带默认值的 toString 方法 public static String toString(Object o, String nullDefault) { return (o != null) ? o.toString() : nullDefault; } // 自定义 比较 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) { 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; } }
/****java 自带工具类分析***/package java.util;public final class Objects {private Objects() {throw new AssertionError("No java.util.Objects instances for you!");}public st...