新聞中心
Objects

java.lang.Object
|---java.util.Objects
public final class Objects
extends Object
此類包含用于對(duì)對(duì)象進(jìn)行操作的靜態(tài)實(shí)用程序方法。 這些實(shí)用程序包括用于計(jì)算對(duì)象的哈希碼、返回對(duì)象的字符串以及比較兩個(gè)對(duì)象的空值安全或空值容忍方法。
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| static |
compare(T a, T b, Comparator super T> c) | 如果參數(shù)相同則返回 0,否則返回 c.compare(a, b)。 |
| static boolean | deepEquals(Object a, Object b) | 如果參數(shù)彼此高度相等,則返回 true,否則返回 false。 |
| static boolean | equals(Object a, Object b) | 如果參數(shù)彼此相等,則返回 true,否則返回 false。 |
| static int | hash(Object... values) | 為一系列輸入值生成哈希碼。 |
| static int | hashCode(Object o) | 返回非空參數(shù)的哈希碼,空參數(shù)返回 0。 |
| static boolean | isNull(Object obj) | 如果提供的引用為 null,則返回 true,否則返回 false。 |
| static boolean | nonNull(Object obj) | 如果提供的引用為非 null,則返回 true,否則返回 false。 |
| static |
requireNonNull(T obj) | 檢查指定的對(duì)象引用不為空。 |
| static |
requireNonNull(T obj, String message) | 檢查指定的對(duì)象引用是否不為空,如果是則拋出自定義的 NullPointerException。 |
| static |
requireNonNull(T obj, SupplierString messageSupplier) | 檢查指定的對(duì)象引用是否不為空,如果是則拋出自定義的 NullPointerException。 |
| static String | toString(Object o) | 返回為非 null 參數(shù)調(diào)用 toString 和為 null 參數(shù)調(diào)用“null”的結(jié)果。 |
| static String | toString(Object o, String nullDefault) | 如果第一個(gè)參數(shù)不為 null,則返回對(duì)第一個(gè)參數(shù)調(diào)用 toString 的結(jié)果,否則返回第二個(gè)參數(shù)。 |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法詳情
equals
public static boolean equals(Object a, Object b)
如果參數(shù)彼此相等,則返回 true,否則返回 false。 因此,如果兩個(gè)參數(shù)都為 null,則返回 true,如果恰好一個(gè)參數(shù)為 null,則返回 false。 否則,相等性通過(guò)使用第一個(gè)參數(shù)的 Object#equals 方法來(lái)確定。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| a | 一個(gè)對(duì)象 |
| b | 一個(gè)要與 a 比較的對(duì)象以求相等 |
返回:
如果參數(shù)彼此相等,則為 true,否則為 false
deepEquals
public static boolean deepEquals(Object a, Object b)
如果參數(shù)彼此高度相等,則返回 true,否則返回 false。 兩個(gè)空值非常相等。 如果兩個(gè)參數(shù)都是數(shù)組,則使用 Arrays#deepEquals(Object[], Object[]) 中的算法來(lái)確定相等性。 否則,相等性通過(guò)使用第一個(gè)參數(shù)的 Object#equals 方法來(lái)確定。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| a | 一個(gè)對(duì)象 |
| b | 一個(gè)要與 a 進(jìn)行比較的對(duì)象以實(shí)現(xiàn)深度相等 |
返回:
如果參數(shù)彼此高度相等,則為 true,否則為 false
hashCode
public static int hashCode(Object o)
返回非空參數(shù)的哈希碼,空參數(shù)返回 0。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 一個(gè)對(duì)象 |
返回:
非空參數(shù)的哈希碼和空參數(shù)的 0
hash
public static int hash(Object... values)
為一系列輸入值生成哈希碼。 哈希碼的生成就像將所有輸入值放入一個(gè)數(shù)組中一樣,并且該數(shù)組通過(guò)調(diào)用 [Arrays#hashCode(Object]) 進(jìn)行了哈希處理。
此方法對(duì)于在包含多個(gè)字段的對(duì)象上實(shí)現(xiàn) Object#hashCode() 很有用。 例如,如果一個(gè)對(duì)象具有三個(gè)字段 x、y 和 z,則可以這樣寫:
@Override public int hashCode() {
return Objects.hash(x, y, z);
}
警告:當(dāng)提供單個(gè)對(duì)象引用時(shí),返回值不等于該對(duì)象引用的哈希碼。 這個(gè)值可以通過(guò)調(diào)用 hashCode(java.lang.Object) 來(lái)計(jì)算。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| values | 要散列的值 |
返回:
輸入值序列的哈希值
toString
public static String toString(Object o)
返回為非 null 參數(shù)調(diào)用 toString 和為 null 參數(shù)調(diào)用“null”的結(jié)果。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 一個(gè)對(duì)象 |
返回:
為非 null 參數(shù)調(diào)用 toString 和為 null 參數(shù)調(diào)用“null”的結(jié)果
toString
public static String toString(Object o, String nullDefault)
如果第一個(gè)參數(shù)不為 null,則返回對(duì)第一個(gè)參數(shù)調(diào)用 toString 的結(jié)果,否則返回第二個(gè)參數(shù)。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| o | 一個(gè)對(duì)象 |
| nullDefault | 如果第一個(gè)參數(shù)為空,則返回字符串 |
返回:
如果第一個(gè)參數(shù)不為空,則對(duì)第一個(gè)參數(shù)調(diào)用 toString 的結(jié)果,否則為第二個(gè)參數(shù)。
compare
public static
如果參數(shù)相同則返回 0,否則返回 c.compare(a, b)。 因此,如果兩個(gè)參數(shù)都為空,則返回 0。
請(qǐng)注意,如果其中一個(gè)參數(shù)為空,則可能會(huì)或可能不會(huì)拋出 NullPointerException,具體取決于比較器為空值選擇的排序策略(如果有)。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 被比較的對(duì)象的類型 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| a | 一個(gè)對(duì)象 |
| b | 一個(gè)要與之比較的對(duì)象 |
| c | Comparator 比較前兩個(gè)參數(shù) |
返回:
如果參數(shù)相同,則為 0,否則為 c.compare(a, b)。
requireNonNull
public static
檢查指定的對(duì)象引用不為空。 此方法主要用于在方法和構(gòu)造函數(shù)中進(jìn)行參數(shù)驗(yàn)證,如下所示:
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
}
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 參考的類型 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| obj | 檢查無(wú)效性的對(duì)象引用 |
返回:
如果不為空,則為 obj
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果 obj 為空 |
requireNonNull
public static
檢查指定的對(duì)象引用是否不為空,如果是則拋出自定義的 NullPointerException。 該方法主要用于在具有多個(gè)參數(shù)的方法和構(gòu)造函數(shù)中進(jìn)行參數(shù)驗(yàn)證,如下所示:
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");
}
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | 參考的類型 |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| obj | 檢查無(wú)效性的對(duì)象引用 |
| message | 拋出 NullPointerException 時(shí)使用的詳細(xì)消息 |
返回:
如果不為空,則為 obj
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果 obj 為空 |
isNull
public static boolean isNull(Object obj)
如果提供的引用為 null,則返回 true,否則返回 false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| obj | 要針對(duì) null 進(jìn)行檢查的引用 |
返回:
如果提供的引用為 null,則為 true,否則為 false
nonNull
public static boolean nonNull(Object obj)
如果提供的引用為非 null,則返回 true,否則返回 false。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| obj | 要針對(duì) null 進(jìn)行檢查的引用 |
返回:
如果提供的引用不為空,則為 true,否則為 false
requireNonNull
public static
檢查指定的對(duì)象引用是否不為空,如果是則拋出自定義的 NullPointerException。
與方法 requireNonNull(java.lang.Object,java.lang.String) 不同,此方法允許將消息的創(chuàng)建推遲到進(jìn)行空值檢查之后。 雖然這可能會(huì)在非空情況下帶來(lái)性能優(yōu)勢(shì),但在決定調(diào)用此方法時(shí),應(yīng)注意創(chuàng)建消息提供者的成本低于直接創(chuàng)建字符串消息的成本。
類型參數(shù):
| 類型參數(shù)名稱 | 類型參數(shù)描述 |
|---|---|
| T | the type of the reference |
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| obj | 檢查無(wú)效性的對(duì)象引用 |
| messageSupplier | 拋出 NullPointerException 時(shí)使用的詳細(xì)消息的提供者 |
返回:
如果不為空,則為 obj
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| NullPointerException | 如果 obj 為空 |
網(wǎng)頁(yè)標(biāo)題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSObjects
網(wǎng)站網(wǎng)址:http://www.dlmjj.cn/article/codccji.html


咨詢
建站咨詢
