public final class Objects
extends Object
java.lang.Object | |
↳ | java.util.Objects |
该类由static
用于对对象进行操作的实用程序方法组成。 这些实用程序包括null
或null
容错方法,用于计算对象的哈希码,返回对象的字符串以及比较两个对象。
Public methods |
|
---|---|
static <T> int |
compare(T a, T b, Comparator<? super T> c) 如果参数相同则返回0;否则返回 |
static boolean |
deepEquals(Object a, Object b) 返回 |
static boolean |
equals(Object a, Object b) 返回 |
static int |
hash(Object... values) 为一系列输入值生成哈希码。 |
static int |
hashCode(Object o) 返回非 |
static boolean |
isNull(Object obj) 返回 |
static boolean |
nonNull(Object obj) 返回 |
static <T> T |
requireNonNull(T obj, String message) 检查指定的对象引用是否为 |
static <T> T |
requireNonNull(T obj, Supplier<String> messageSupplier) 检查指定的对象引用不是 |
static <T> T |
requireNonNull(T obj) 检查指定的对象引用不是 |
static String |
toString(Object o) 返回调用的结果 |
static String |
toString(Object o, String nullDefault) 如果第一个参数不是 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int compare (T a, T b, Comparator<? super T> c)
如果参数相同则返回0,否则返回c.compare(a, b)
。 因此,如果两个参数都是null
则返回0。
请注意,如果其中一个参数是 null
,则 NullPointerException
可能会或可能不会被抛出,具体取决于订购策略(如果有), Comparator
选择 null
值为 null
。
Parameters | |
---|---|
a |
T : an object |
b |
T : an object to be compared with a |
c |
Comparator : the Comparator to compare the first two arguments |
Returns | |
---|---|
int |
0 if the arguments are identical and c.compare(a, b) otherwise. |
也可以看看:
boolean deepEquals (Object a, Object b)
返回true
如果参数是深层相等,彼此false
否则。 两个null
值是非常相等的。 如果两个参数都是数组,则使用Arrays.deepEquals
的算法确定相等性。 否则,通过使用第一个参数的equals
方法确定相等性。
Parameters | |
---|---|
a |
Object : an object |
b |
Object : an object to be compared with a for deep equality |
Returns | |
---|---|
boolean |
true if the arguments are deeply equal to each other and false otherwise |
boolean equals (Object a, Object b)
返回true
如果参数相等,彼此false
否则。 因此,如果这两个参数是null
, true
返回,如果只有一个参数为null
, false
返回。 否则,通过使用第一个参数的equals
方法确定相等性。
Parameters | |
---|---|
a |
Object : an object |
b |
Object : an object to be compared with a for equality |
Returns | |
---|---|
boolean |
true if the arguments are equal to each other and false otherwise |
也可以看看:
int hash (Object... values)
为一系列输入值生成哈希码。 生成哈希码就好像所有的输入值都放入数组中,并通过调用hashCode(Object[])
来哈希该数组。
此方法对于在包含多个字段的对象上实现hashCode()
很有用。 例如,如果一个对象具有三个字段, x
y
和z
,则可以这样写:
Warning: When a single object reference is supplied, the returned value does not equal the hash code of that object reference. This value can be computed by calling@Override public int hashCode() { return Objects.hash(x, y, z); }
hashCode(Object)
.
Parameters | |
---|---|
values |
Object : the values to be hashed |
Returns | |
---|---|
int |
a hash value of the sequence of input values |
也可以看看:
int hashCode (Object o)
返回非 null
参数的散列码,并为 null
参数返回0。
Parameters | |
---|---|
o |
Object : an object |
Returns | |
---|---|
int |
the hash code of a non-null argument and 0 for a null argument |
也可以看看:
boolean isNull (Object obj)
返回 true
如果提供的参考是 null
,否则返回 false
。
Predicate
, filter(Objects::isNull)
Parameters | |
---|---|
obj |
Object : a reference to be checked against null |
Returns | |
---|---|
boolean |
true if the provided reference is null otherwise false |
也可以看看:
boolean nonNull (Object obj)
返回 true
如果提供的参考是非 null
否则返回 false
。
Predicate
, filter(Objects::nonNull)
Parameters | |
---|---|
obj |
Object : a reference to be checked against null |
Returns | |
---|---|
boolean |
true if the provided reference is non-null otherwise false |
也可以看看:
T requireNonNull (T obj, String message)
检查指定的对象引用不是null
,如果是,则引发自定义的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"); }
Parameters | |
---|---|
obj |
T : the object reference to check for nullity |
message |
String : detail message to be used in the event that a NullPointerException is thrown |
Returns | |
---|---|
T |
obj if not null |
Throws | |
---|---|
NullPointerException |
if obj is null |
T requireNonNull (T obj, Supplier<String> messageSupplier)
检查指定的对象引用不是 null
,如果是,则引发自定义的 NullPointerException
。
与方法requireNonNull(Object, String)
不同,此方法允许创建要推迟的消息,直到进行空值检查为止。 虽然这可能会赋予非空情况下的性能优势,但在决定调用此方法时应注意创建消息供应商的成本低于仅直接创建字符串消息的成本。
Parameters | |
---|---|
obj |
T : the object reference to check for nullity |
messageSupplier |
Supplier : supplier of the detail message to be used in the event that a NullPointerException is thrown |
Returns | |
---|---|
T |
obj if not null |
Throws | |
---|---|
NullPointerException |
if obj is null |
T requireNonNull (T obj)
检查指定的对象引用不是null
。 此方法主要用于在方法和构造函数中进行参数验证,如下所示:
public Foo(Bar bar) { this.bar = Objects.requireNonNull(bar); }
Parameters | |
---|---|
obj |
T : the object reference to check for nullity |
Returns | |
---|---|
T |
obj if not null |
Throws | |
---|---|
NullPointerException |
if obj is null |
String toString (Object o)
返回调用的结果 toString
的非 null
参数, "null"
为 null
的说法。
Parameters | |
---|---|
o |
Object : an object |
Returns | |
---|---|
String |
the result of calling toString for a non-null argument and "null" for a null argument |
也可以看看:
String toString (Object o, String nullDefault)
如果第一个参数不是 null
,则返回第一个参数调用 toString
的结果,否则返回第二个参数。
Parameters | |
---|---|
o |
Object : an object |
nullDefault |
String : string to return if the first argument is null |
Returns | |
---|---|
String |
the result of calling toString on the first argument if it is not null and the second argument otherwise. |
也可以看看: