public final class Objects extends Object
static用于对对象进行static实用方法组成。
这些实用程序包括用于计算对象的哈希码的null -safe或null方法,为对象返回一个字符串,并比较两个对象。
| Modifier and Type | Method and Description |
|---|---|
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 String |
toString(Object o)
返回非
null参数调用
toString和
"null"参数的
"null"的
null 。
|
static String |
toString(Object o, String nullDefault)
如果第一个参数不是
null ,则返回第一个参数调用
toString的结果,
toString返回第二个参数。
|
public static boolean equals(Object a, Object b)
true如果参数相等,彼此false其他。
因此,如果两个参数都是null , true返回null ,如果只有一个参数是null ,则返回false 。
否则,使用第一个参数的equals方法确定相等性。
a - 一个对象
b - 与
a进行比较的一个对象
true如果参数彼此相等,
false false
Object.equals(Object)
public static boolean deepEquals(Object a, Object b)
true如果参数是深层相等,彼此false其他。
两个null值相当。
如果两个参数都是数组,则使用Arrays.deepEquals中的算法来确定相等。
否则,通过使用第一个参数的equals方法确定相等性。
a - 一个对象
b - 与
a进行比较的对象,用于深度相等
true如果参数彼此深度相等,
false false
Arrays.deepEquals(Object[], Object[]) ,
equals(Object, Object)
public static int hashCode(Object o)
null参数,0为
null参数。
o - 一个对象
null参数,0为
null参数
Object.hashCode()
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(Object)来计算。
values - 要散列的值
Arrays.hashCode(Object[]) ,
List.hashCode()
public static String toString(Object o)
null参数调用
toString和一个
null参数的
"null"的
null 。
o - 一个对象
toString为非
null参数和
"null"为
null参数的结果
Object.toString() ,
String.valueOf(Object)
public static String toString(Object o, String nullDefault)
null ,则返回第一个参数调用
toString的结果,
toString返回第二个参数。
o - 一个对象
nullDefault - 如果第一个参数是
null ,返回的字符串
toString对第一个参数的结果,如果不是
null ,否则第二个参数。
toString(Object)
public static <T> int compare(T a,
T b,
Comparator<? super T> c)
c.compare(a, b)其他。
因此,如果两个参数都为null则返回0。
请注意,如果其中一个参数为null ,则NullPointerException可能会或可能不会抛出,具体取决于Comparator选择具有null值的订购策略(如果有)。
T - 正在比较的对象的类型
a - 一个对象
b - 要与
a进行比较的对象
c -
Comparator比较前两个参数
c.compare(a, b) 0,否则为c.compare(a, b)。
Comparable , Comparator
public static <T> T requireNonNull(T obj)
null 。
该方法主要用于在方法和构造函数中进行参数验证,如下所示:
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
}
T - 参考的类型
obj - 检查无效的对象引用
obj如果不是
null
NullPointerException - 如果
obj是
null
public static <T> 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");
}
T - 参考的类型
obj - 检查无效的对象引用
message - 在抛出
NullPointerException的情况下使用的详细消息
obj如果不是
null
NullPointerException - 如果
obj是
null
public static boolean isNull(Object obj)
true如果提供的引用是
null否则返回
false 。
public static boolean nonNull(Object obj)
true如果提供的参考是非
null否则返回
false 。
public static <T> T requireNonNull(T obj,
Supplier<String> messageSupplier)
null并抛出自定义的NullPointerException(如果是)。
与方法requireNonNull(Object, String)不同,该方法允许创建要延迟的消息,直到进行空检查为止。 虽然这可能会在非空情况下赋予性能优势,但在决定调用此方法时,应注意创建消息提供者的成本低于直接创建字符串消息的成本。
T - 参考的类型
obj - 检查无效的对象引用
messageSupplier - 在发送
NullPointerException的情况下使用的详细消息的供应商
obj如果不是
null
NullPointerException - 如果
obj是
null
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.