Java
在java.util
包中有一个实用程序类Objects
用于处理对象。
它由所有静态方法组成。 Objects类中的大多数方法都会优雅地处理空值。
int compare(T a, T b, Comparator c)
- 如果参数相同,则返回
0
,否则返回c.compare(a,b)
。因此,如果两个参数都为null
,则返回0
。
- 如果参数相同,则返回
boolean deepEquals(Object a, Object b)
- 检查两个对象是否相等。如果两个参数都相等,则返回
true
。否则,它返回false
。如果两个参数都为null
,则返回true
。
- 检查两个对象是否相等。如果两个参数都相等,则返回
boolean equals(Object a, Object b)
- 比较两个对象是否相等。如果两个参数相等,则返回
true
。否则,它返回false
。如果两个参数都为null
,则返回true
。
- 比较两个对象是否相等。如果两个参数相等,则返回
int hash(Object... values)
- 为所有指定的对象生成哈希码。它可以用于计算对象的哈希码,该哈希码基于多个实例字段。
int hashCode(Object o)
- 返回指定对象的哈希码值。如果参数为
null
,则返回0。
- 返回指定对象的哈希码值。如果参数为
boolean isNull(Object obj)
- 如果指定的对象为
null
,isNull()
方法返回true
。否则,它返回false
。您还可以使用比较运算符==
检查对象是否为null
,例如,obj == null
返回obj
的true
为null
。
- 如果指定的对象为
boolean nonNull(Object obj)
- 执行与
isNull()
方法相反的检查。
- 执行与
T requireNonNull(T obj)
T requireNonNull(T obj, String message)
T requireNonNull(T obj, Supplier messageSupplier)
- 检查参数是否为
null
。如果参数为null
,它会抛出一个NullPointerException
异常。此方法设计用于验证方法和构造函数的参数。 - 第二个版本可以指定当参数为
null
时抛出的NullPointerException
的消息。 - 第三个版本的方法将一个
Supplier
作为第二个参数。
- 检查参数是否为
String toString(Object o)
String toString(Object o, String nullDefault)
- 如果参数为
null
,则toString()
方法返回一个”null
“字符串。对于非空参数,它返回通过调用参数的toString()
s方法返回的值。
- 如果参数为
使用
HashCode
下面的代码演示了如何使用来自Objects
类的方法来计算哈希码。
1 | import java.util.Objects; |
equals
以下代码显示了如何使用Objects
类中的equals
方法来比较两个对象。
1 | import java.util.Objects; |
toString
以下代码显示如何使用toString
方法从对象将对象转换为字符串。
1 | import java.util.Objects; |