鴻蒙OS Objects

2022-07-29 13:59 更新

Objects

java.lang.Object

|---java.util.Objects

public final class Objects
extends Object

此類包含用于對對象進行操作的靜態(tài)實用程序方法。 這些實用程序包括用于計算對象的哈希碼、返回對象的字符串以及比較兩個對象的空值安全或空值容忍方法。

方法總結(jié)

修飾符和類型 方法 描述
static <T> int 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 <T> T requireNonNull(T obj) 檢查指定的對象引用不為空。
static <T> T requireNonNull(T obj, String message) 檢查指定的對象引用是否不為空,如果是則拋出自定義的 NullPointerException。
static <T> T requireNonNull(T obj, SupplierString messageSupplier) 檢查指定的對象引用是否不為空,如果是則拋出自定義的 NullPointerException。
static String toString(Object o) 返回為非 null 參數(shù)調(diào)用 toString 和為 null 參數(shù)調(diào)用“null”的結(jié)果。
static String toString(Object o, String nullDefault) 如果第一個參數(shù)不為 null,則返回對第一個參數(shù)調(diào)用 toString 的結(jié)果,否則返回第二個參數(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。 因此,如果兩個參數(shù)都為 null,則返回 true,如果恰好一個參數(shù)為 null,則返回 false。 否則,相等性通過使用第一個參數(shù)的 Object#equals 方法來確定。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個對象
b 一個要與 a 比較的對象以求相等

返回:

如果參數(shù)彼此相等,則為 true,否則為 false

deepEquals

public static boolean deepEquals(Object a, Object b)

如果參數(shù)彼此高度相等,則返回 true,否則返回 false。 兩個空值非常相等。 如果兩個參數(shù)都是數(shù)組,則使用 Arrays#deepEquals(Object[], Object[]) 中的算法來確定相等性。 否則,相等性通過使用第一個參數(shù)的 Object#equals 方法來確定。

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個對象
b 一個要與 a 進行比較的對象以實現(xiàn)深度相等

返回:

如果參數(shù)彼此高度相等,則為 true,否則為 false

hashCode

public static int hashCode(Object o)

返回非空參數(shù)的哈希碼,空參數(shù)返回 0。

參數(shù):

參數(shù)名稱 參數(shù)描述
o 一個對象

返回:

非空參數(shù)的哈希碼和空參數(shù)的 0

hash

public static int hash(Object... values)

為一系列輸入值生成哈希碼。 哈希碼的生成就像將所有輸入值放入一個數(shù)組中一樣,并且該數(shù)組通過調(diào)用 [Arrays#hashCode(Object]) 進行了哈希處理。

此方法對于在包含多個字段的對象上實現(xiàn) Object#hashCode() 很有用。 例如,如果一個對象具有三個字段 x、y 和 z,則可以這樣寫:

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

警告:當提供單個對象引用時,返回值不等于該對象引用的哈希碼。 這個值可以通過調(diào)用 hashCode(java.lang.Object) 來計算。

參數(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 一個對象

返回:

為非 null 參數(shù)調(diào)用 toString 和為 null 參數(shù)調(diào)用“null”的結(jié)果

toString

public static String toString(Object o, String nullDefault)

如果第一個參數(shù)不為 null,則返回對第一個參數(shù)調(diào)用 toString 的結(jié)果,否則返回第二個參數(shù)。

參數(shù):

參數(shù)名稱 參數(shù)描述
o 一個對象
nullDefault 如果第一個參數(shù)為空,則返回字符串

返回:

如果第一個參數(shù)不為空,則對第一個參數(shù)調(diào)用 toString 的結(jié)果,否則為第二個參數(shù)。

compare

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

如果參數(shù)相同則返回 0,否則返回 c.compare(a, b)。 因此,如果兩個參數(shù)都為空,則返回 0。

請注意,如果其中一個參數(shù)為空,則可能會或可能不會拋出 NullPointerException,具體取決于比較器為空值選擇的排序策略(如果有)。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 被比較的對象的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
a 一個對象
b 一個要與之比較的對象
c Comparator 比較前兩個參數(shù)

返回:

如果參數(shù)相同,則為 0,否則為 c.compare(a, b)。

requireNonNull

public static <T> T requireNonNull(T obj)

檢查指定的對象引用不為空。 此方法主要用于在方法和構(gòu)造函數(shù)中進行參數(shù)驗證,如下所示:

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

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T 參考的類型

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 檢查無效性的對象引用

返回:

如果不為空,則為 obj

Throws:

Throw名稱 Throw描述
NullPointerException 如果 obj 為空

requireNonNull

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

檢查指定的對象引用是否不為空,如果是則拋出自定義的 NullPointerException。 該方法主要用于在具有多個參數(shù)的方法和構(gòu)造函數(shù)中進行參數(shù)驗證,如下所示:

 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 檢查無效性的對象引用
message 拋出 NullPointerException 時使用的詳細消息

返回:

如果不為空,則為 obj

Throws:

Throw名稱 Throw描述
NullPointerException 如果 obj 為空

isNull

public static boolean isNull(Object obj)

如果提供的引用為 null,則返回 true,否則返回 false。

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 要針對 null 進行檢查的引用

返回:

如果提供的引用為 null,則為 true,否則為 false

nonNull

public static boolean nonNull(Object obj)

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

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 要針對 null 進行檢查的引用

返回:

如果提供的引用不為空,則為 true,否則為 false

requireNonNull

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

檢查指定的對象引用是否不為空,如果是則拋出自定義的 NullPointerException。

與方法 requireNonNull(java.lang.Object,java.lang.String) 不同,此方法允許將消息的創(chuàng)建推遲到進行空值檢查之后。 雖然這可能會在非空情況下帶來性能優(yōu)勢,但在決定調(diào)用此方法時,應(yīng)注意創(chuàng)建消息提供者的成本低于直接創(chuàng)建字符串消息的成本。

類型參數(shù):

類型參數(shù)名稱 類型參數(shù)描述
T the type of the reference

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 檢查無效性的對象引用
messageSupplier 拋出 NullPointerException 時使用的詳細消息的提供者

返回:

如果不為空,則為 obj

Throws:

Throw名稱 Throw描述
NullPointerException 如果 obj 為空
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號