• 核心类库_常用类库_Objects


    模块java.base

    软件包java.util

    java.util.Obiects

      public final class Objects extends Object

      此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括nullnull方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。

    变量和类型 方法 描述
    static int checkFromIndexSize(int fromIndex,int size,int length)
    检查是否在子范围从 fromIndex (包括)到 fromIndex + size (不包括)是范围界限内 0 (包括)到 length (不包括)。 
    static int checkFromToIndex(int fromIndex,int toIndex,int length)
    检查是否在子范围从 fromIndex (包括)到 toIndex (不包括)是范围界限内 0 (包括)到 length (不包括)。 
    static int checkIndex(int index,int length) 检查 index是否在 0 (含)到 length (不包括)范围内。
    static <T> int compare(T a,T b,Comparator<? super T> c) 如果参数相同则返回0,否则返回 c.compare(a, b)
    static boolean deepEquals(Object a,Object b) 返回 true如果参数是深层相等,彼此 false其他。
    static boolean equals(Object a,Object b)
    返回 true如果参数相等,彼此 false其他。 
    static int hash(Object... values) 为一系列输入值生成哈希码。
    static int hashCode(Object o) 返回非的哈希码 null参数,0为 null的论点。
    static boolean isNull(Object obj) 返回 true如果提供的参考是 null ,否则返回 false
    static boolean nonNull(Object obj)
    返回 true如果提供的参考是非 null否则返回 false 。 
    static <T> T requireNonNull(T obj) 检查指定的对象引用是否不是 null
    static <T> T requireNonNull(T obj,String message)
    检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException
    static <T> T requireNonNull(T obj,Supplier<String> messageSupplier) 检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException
    static <T> T requireNonNullElse(T obj,T defaultObj) 如果它是非 null ,则返回第一个参数,否则返回非 null第二个参数。
    static <T> T requireNonNullElseGet(T obj,Supplier<? extends T> supplier)
    如果它是非 null ,则返回第一个参数,否则返回非 nullsupplier.get() 。 
    static String toString(Object o) 返回调用的结果 toString对于非 null参数, "null"null的说法。
    static String toString(Object o,String nullDefault)
    如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。 

    声明方法的类java.lang.Object

    方法详细信息:

    equals

    1 public static boolean equals​(Object a, Object b)

    参数:a-一个对象  b-要与a比较以获得相等性的对象

    结果:如果参数彼此相等,则为true,否则为false(都是null,返回true;只有一个为null,返回false。否则,通过使用第一个参数的equals方法确定相等性)

    deepEquals

    1 public static boolean deepEquals​(Object a, Object b)

    参数:a-一个物体  b-与a进行比较的对象,用于深度相等

    结果:如果参数彼此非常相等,则为true,否则为false(如果两个参数是数组,则使用Array.deepEquals中的算法来确定相等性。否则,通过使用第一个参数的equals方法确定相等性)

    hashCode

    1 public static int hashCode​(Object o)

    参数:o-一个对象

    结果:非的哈希码 null参数 o为 null参数

    hash

    1 public static int hash​(Object... values)

    描述:为一系列输入值生成哈希码。生成哈希码,好像所有输入值都放在一个数组中,并通过调用Arrays.hashCode(Object[])对该数组进行哈希处理 。此方法对于在包含多个字段的对象上实现Object.hashCode()非常有用。 例如,如果有三个字段,对象xy ,和z ,一个可以这样写:

    1 @Override 
    2 public int hashCode() {
    3     return Objects.hash(x, y, z);
    4 }

    参数:values-要散列的值

    结果:输入值序列的哈希值(警告:提供单个对象引用时,返回的值不等于该对象引用的哈希码。可以通过hashCode(object)来计算此值。)

    toString

    1 public static String toString​(Object o)

    参数:o-一个物体

    结果:调用的结果 toString对于非 null参数, "null"null的说法

    toString

    1 public static String toString​(Object o, String nullDefault)

    参数:o-一个物体

    结果:如果它不是 null ,则在第一个参数上调用 toString ,否则调用第二个参数。

    compare

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

    参数类型:T-要比较的对象的类型

    参数:a-一个物体  b-要与a进行比较的对象  c-比较前两个参数的Comparator

    结果:如果参数相同 c.compare(a, b) 0,否则为 c.compare(a, b)

    requireNonNull

    1 public static <T> T requireNonNull​(T obj)

    描述:检查指定的对象引用是否不是null 。 此方法主要用于在方法和构造函数中进行参数验证,如下所示:

     

    1 public Foo(Bar bar) {
    2     this.bar = Objects.requireNonNull(bar);
    3 }

    参数类型:T-引用的类型

    参数:obj-检查无效的对象引用

    结果:obj如果不是 null

    异常:NullPointerException-如果obj是null

    requireNonNull

    1 public static <T> T requireNonNull​(T obj, String message)

    描述:检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException 。 此方法主要用于在具有多个参数的方法和构造函数中进行参数验证,如下所示:

    1 public Foo(Bar bar, Baz baz) {
    2     this.bar = Objects.requireNonNull(bar, "bar must not be null");
    3     this.baz = Objects.requireNonNull(baz, "baz must not be null");
    4 }

    参数类型:T-引用的类型

    参数:obj-检查无效的对象引用  message-在抛出NullPointerException的情况下使用的详细消息

    结果:obj若不是 null

    异常:NullPointerException-如果obj是null

    isNull

    1 public static boolean isNull​(Object obj)

    API Note:这种方法存在着用作Predicatefilter(Objects::isNull)

    参数:obj-针对null进行检查的参考

    结果:如果提供的参考量是null,则为true,否则为false

    nonNull

    1 public static boolean nonNull​(Object obj)

    API Note:这种方法存在着用作Predicate , filter(Objects::isNull)

    参数:obj-针对null进行检查的参考

    结果:如果提供的参考量是 非null,则为true,否则为false

    requireNonNullElse

    1 public static <T> T requireNonNullElse​(T obj, T defaultObj)

    参数类型:T-引用的类型

    参数:obj - 一个物体  defaultObj - 如果第一个参数为 null ,则返回 非null 对象

    结果:如果它是 非null ,返回第一个参数,否则返回 非null 的第二个参数。

    requireNonNullElseGet

    1 public static <T> T requireNonNullElseGet​(T obj, Supplier<? extends T> supplier)

    参数类型:T - 第一个参数和返回的类型

    参数:obj - 一个物体  supplier - 如果第一个参数是 null ,则返回 非null 对象

    结果:如果它是 非null ,则返回第一个参数,否则返回 非null 值supplier.get()。

    异常:NullPointerException - 如果两者 obj均为空且 suppliernullsupplier.get()值为 null

    requireNonNull

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

    参数类型:T-引用的类型

    参数:obj - 检查无效的对象引用  messageSupplier - 如果抛出NullPointException,将使用详细消息的供应商

    结果:检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException 。如果不是 null(与方法requireNonNull(Object, String)不同,此方法允许创建要延迟的消息,直到进行空检查。 虽然这可以在非空情况下赋予性能优势,但在决定调用此方法时,应注意创建消息提供者的成本小于仅直接创建字符串消息的成本。)

    异常:NullPointerException - 如果 objnull

    checkIndex

    1 public static int checkIndex​(int index, int length)

    描述:检查index是否在0 (含)到length (不包括)范围内。

        如果以下任何不等式为真,则定义index超出范围:

    • index < 0
    • index >= length
    • length < 0(这是前者的不平等所暗示的)

    参数:index - 该指数  length - 范围的上限(不包括)

    结果:index如果他在范围的范围内

    异常:IndexOutOfBoundsException - 如果 index超出界限 

    checkFromToIndex

    1 public static int checkFromToIndex​(int fromIndex, int toIndex, int length)
    检查是否在子范围从fromIndex (包括)到toIndex (不包括)是范围界限内0 (包括)到length (不包括)。

    如果以下任何不等式为真,则子范围被定义为超出界限:

    • fromIndex < 0
    • fromIndex > toIndex
    • toIndex > length
    • length < 0 ,这是前者的不平等所暗示的

    参数:fromIndex - 子范围的下限(包括)toIndex - 子范围的上限(不包括)length - 上限(不包括)范围

    结果:fromIndex如果子范围内的范围内

    异常:IndexOutOfBoundsException - 如果子范围超出范围

    checkFromIndexSize

    1 public static int checkFromIndexSize​(int fromIndex, int size, int length)
    检查是否在子范围从fromIndex (包括)到fromIndex + size (不包括)是范围界限内0 (包括)到length (不包括)。

    如果以下任何不等式为真,则子范围被定义为超出界限:

    • fromIndex < 0
    • size < 0
    • fromIndex + size > length ,考虑到整数溢出
    • length < 0 ,这是前者的不平等所暗示的

    参数:fromIndex - 子间隔的下限(包括) size - 子范围的大小  length - 范围的上限(不包括)

    结果:fromIndex如果子范围在范围的范围内

    异常:IndexOutOfBoundsException - 如果子范围超出范围

  • 相关阅读:
    Qbxt 模拟题 day2(am) T2 jian
    Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组
    洛谷比赛 U5442 买(最长链)
    洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)
    Codevs 4373 窗口(线段树 单调队列 st表)
    P1453 城市环路
    P1841 [JSOI2007]重要的城市
    P1410 子序列
    H
    GSS4 D
  • 原文地址:https://www.cnblogs.com/zhangzhongkun/p/14447067.html
Copyright © 2020-2023  润新知