树叶云鸿蒙OS教程:鸿蒙OS Objects

Objects

java.lang.Object

|—java.util.Objects

public final class Objects
extends Object

此类包含用于对对象进行操作的静态实用程序方法。 这些实用程序包括用于计算对象的哈希码、返回对象的字符串以及比较两个对象的空值安全或空值容忍方法。

方法总结

修饰符和类型方法描述
static <T> intcompare(T a, T b, Comparator<? super T> c)如果参数相同则返回 0,否则返回 c.compare(a, b)。
static booleandeepEquals(Object a, Object b)如果参数彼此高度相等,则返回 true,否则返回 false。
static booleanequals(Object a, Object b)如果参数彼此相等,则返回 true,否则返回 false。
static inthash(Object… values)为一系列输入值生成哈希码。
static inthashCode(Object o)返回非空参数的哈希码,空参数返回 0。
static booleanisNull(Object obj)如果提供的引用为 null,则返回 true,否则返回 false。
static booleannonNull(Object obj)如果提供的引用为非 null,则返回 true,否则返回 false。
static <T> TrequireNonNull(T obj)检查指定的对象引用不为空。
static <T> TrequireNonNull(T obj, String message)检查指定的对象引用是否不为空,如果是则抛出自定义的 NullPointerException。
static <T> TrequireNonNull(T obj, SupplierString messageSupplier)检查指定的对象引用是否不为空,如果是则抛出自定义的 NullPointerException。
static StringtoString(Object o)返回为非 null 参数调用 toString 和为 null 参数调用“null”的结果。
static StringtoString(Object o, String nullDefault)如果第一个参数不为 null,则返回对第一个参数调用 toString 的结果,否则返回第二个参数。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

方法详情

equals

public static boolean equals(Object a, Object b)

如果参数彼此相等,则返回 true,否则返回 false。 因此,如果两个参数都为 null,则返回 true,如果恰好一个参数为 null,则返回 false。 否则,相等性通过使用第一个参数的 Object#equals 方法来确定。

参数:

参数名称参数描述
a一个对象
b一个要与 a 比较的对象以求相等

返回:

如果参数彼此相等,则为 true,否则为 false

deepEquals

public static boolean deepEquals(Object a, Object b)

如果参数彼此高度相等,则返回 true,否则返回 false。 两个空值非常相等。 如果两个参数都是数组,则使用 Arrays#deepEquals(Object[], Object[]) 中的算法来确定相等性。 否则,相等性通过使用第一个参数的 Object#equals 方法来确定。

参数:

参数名称参数描述
a一个对象
b一个要与 a 进行比较的对象以实现深度相等

返回:

如果参数彼此高度相等,则为 true,否则为 false

hashCode

public static int hashCode(Object o)

返回非空参数的哈希码,空参数返回 0。

参数:

参数名称参数描述
o一个对象

返回:

非空参数的哈希码和空参数的 0

hash

public static int hash(Object… values)

为一系列输入值生成哈希码。 哈希码的生成就像将所有输入值放入一个数组中一样,并且该数组通过调用 [Arrays#hashCode(Object]) 进行了哈希处理。

此方法对于在包含多个字段的对象上实现 Object#hashCode() 很有用。 例如,如果一个对象具有三个字段 x、y 和 z,则可以这样写:

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

警告:当提供单个对象引用时,返回值不等于该对象引用的哈希码。 这个值可以通过调用 hashCode(java.lang.Object) 来计算。

参数:

参数名称参数描述
values要散列的值

返回:

输入值序列的哈希值

toString

public static String toString(Object o)

返回为非 null 参数调用 toString 和为 null 参数调用“null”的结果。

参数:

参数名称参数描述
o一个对象

返回:

为非 null 参数调用 toString 和为 null 参数调用“null”的结果

toString

public static String toString(Object o, String nullDefault)

如果第一个参数不为 null,则返回对第一个参数调用 toString 的结果,否则返回第二个参数。

参数:

参数名称参数描述
o一个对象
nullDefault如果第一个参数为空,则返回字符串

返回:

如果第一个参数不为空,则对第一个参数调用 toString 的结果,否则为第二个参数。

compare

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

如果参数相同则返回 0,否则返回 c.compare(a, b)。 因此,如果两个参数都为空,则返回 0。

请注意,如果其中一个参数为空,则可能会或可能不会抛出 NullPointerException,具体取决于比较器为空值选择的排序策略(如果有)。

类型参数:

类型参数名称类型参数描述
T被比较的对象的类型

参数:

参数名称参数描述
a一个对象
b一个要与之比较的对象
cComparator 比较前两个参数

返回:

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

requireNonNull

public static <T> T requireNonNull(T obj)

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

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

类型参数:

类型参数名称类型参数描述
T参考的类型

参数:

参数名称参数描述
obj检查无效性的对象引用

返回:

如果不为空,则为 obj

Throws:

Throw名称Throw描述
NullPointerException如果 obj 为空

requireNonNull

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

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

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

类型参数:

类型参数名称类型参数描述
T参考的类型

参数:

参数名称参数描述
obj检查无效性的对象引用
message抛出 NullPointerException 时使用的详细消息

返回:

如果不为空,则为 obj

Throws:

Throw名称Throw描述
NullPointerException如果 obj 为空

isNull

public static boolean isNull(Object obj)

如果提供的引用为 null,则返回 true,否则返回 false。

参数:

参数名称参数描述
obj要针对 null 进行检查的引用

返回:

如果提供的引用为 null,则为 true,否则为 false

nonNull

public static boolean nonNull(Object obj)

如果提供的引用为非 null,则返回 true,否则返回 false。

参数:

参数名称参数描述
obj要针对 null 进行检查的引用

返回:

如果提供的引用不为空,则为 true,否则为 false

requireNonNull

public static <T> T requireNonNull(T obj, SupplierString messageSupplier)

检查指定的对象引用是否不为空,如果是则抛出自定义的 NullPointerException。

与方法 requireNonNull(java.lang.Object,java.lang.String) 不同,此方法允许将消息的创建推迟到进行空值检查之后。 虽然这可能会在非空情况下带来性能优势,但在决定调用此方法时,应注意创建消息提供者的成本低于直接创建字符串消息的成本。

类型参数:

类型参数名称类型参数描述
Tthe type of the reference

参数:

参数名称参数描述
obj检查无效性的对象引用
messageSupplier抛出 NullPointerException 时使用的详细消息的提供者

返回:

如果不为空,则为 obj

Throws:

Throw名称Throw描述
NullPointerException如果 obj 为空

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/206209.html<

(0)
管理的头像管理
上一篇2025-04-07 23:38
下一篇 2025-04-07 23:40

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注