深入了解Java核心类库??Objects类

深入了解Java核心类库??Objects类,博智网带你了解详细信息 。
目录

  • 1 Objects
    • 1.1 Objects方法
    • 1.2 Objects常用方法
      • 1.2.1 equals(Object a, Object b)
      • 1.2.2 isNull(Object obj)
      • 1.2.3 nonNull(Object obj)
      • 1.2.4 requireNonNull(T obj)
    • 1.3 Objects源码
    • 2 区别于Object
      • 2.1 Object构造方法
        • 2.2 Object其他方法
          • 2.2.1 equals(Object obj)
          • 2.2.2 toString()
        • 2.3 Object源码
        • 总结

          1 Objects
          1.1 Objects方法工具类,常用于检查操作
          返回值方法名作用static intcheckFromIndexSize​(int fromIndex, int size, int length)检查子范围[ fromIndex ,fromIndex + size)是否在 [0,length)范围界限内 。static intcheckFromToIndex​(int fromIndex, int toIndex, int length)检查子范围[ fromIndex ,toIndex)是否在 [0,length)范围界限内static intcheckIndex​(int index, int length)检查子范围index是否在 [0,length)范围界限内static intcompare(T a, T b, Comparator<? super T> c)如果参数a,b相同则返回0,否则返回c.compare(a, b)的结果static booleandeepEquals(Object a, Object b)对比a,b参数是否深层次相等(如果a,b为数组,则对比数组的每个参数)static booleanequals(Object a, Object b)对比a,b参数是否相等static inthash(Object… values)为输入值序列生成哈希码static inthashCode(Object o)非空返回哈希码,null则抛出NullPointerExceptionstatic booleanisNull(Object obj)obj参数为null返回truestatic booleannonNull(Object obj)obj参数不为null返回truestatic TrequireNonNull(T obj)检查指定的对象引用不是 null,为null则抛出NullPointerExceptionstatic TrequireNonNull(T obj, String message)检查指定的对象引用不是null,否则抛出自定义的NullPointerExceptionstatic TrequireNonNull​(T obj, Supplier messageSupplier)检查指定的对象引用是否为null,如果是,则抛出自定义的NullPointerException。static TrequireNonNullElse​(T obj, T defaultObj)如果它是非 null,则返回第一个参数,否则返回非 null第二个参数 。static TrequireNonNullElseGet​(T obj, Supplier<? extends T> supplier)如果它是非 null,则返回第一个参数,否则返回非 null值 supplier.get()。static StringtoString(Object o)返回对象的字符串表示形式static StringtoString(Object o, String nullDefault)如果第一个参数不是 null,则返回第一个参数调用 toString的结果,否则返回第二个参数
          1.2 Objects常用方法
          1.2.1 equals(Object a, Object b)
          equals(Object a, Object b)源码:
          public static boolean equals(Object a, Object b) {
          return (a == b) || (a != null && a.equals(b));
          }

          1.2.2 isNull(Object obj)
          isNull(Object obj)源码:
          public static boolean isNull(Object obj) {
          return obj == null;
          }

          1.2.3 nonNull(Object obj)
          nonNull(Object obj)源码:
          public static boolean nonNull(Object obj) {
          return obj != null;
          }

          1.2.4 requireNonNull(T obj)
          requireNonNull(T obj)源码:
          public static T requireNonNull(T obj) {
          if (obj == null)
          throw new NullPointerException();
          return obj;
          }

          1.3 Objects源码package java.util;import jdk.internal.util.Preconditions;import jdk.internal.vm.annotation.ForceInline;import java.util.function.Supplier;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;elsereturn Arrays.deepEquals0(a, b);}public static int hashCode(Object o) {return o != null ? o.hashCode() : 0;}public static int hash(Object... values) {return Arrays.hashCode(values);}public static String toString(Object o) {return String.valueOf(o);}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 requireNonNullElse(T obj, T defaultObj) {return (obj != null) ? obj : requireNonNull(defaultObj, "defaultObj");}public static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier) {return (obj != null) ? obj: requireNonNull(requireNonNull(supplier, "supplier").get(), "supplier.get()");}public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier) {if (obj == null)throw new NullPointerException(messageSupplier == null ?null : messageSupplier.get());return obj;}@ForceInlinepublic staticint checkIndex(int index, int length) {return Preconditions.checkIndex(index, length, null);}public static int checkFromToIndex(int fromIndex, int toIndex, int length) {return Preconditions.checkFromToIndex(fromIndex, toIndex, length, null);}public static int checkFromIndexSize(int fromIndex, int size, int length) {return Preconditions.checkFromIndexSize(fromIndex, size, length, null);}}