ObjectUtils類介紹
方法:
allNotNull(對象...值) | 檢查所有對像是否不為空 |
allNull(對象...值) | 檢查所有對像是否為空 |
anyNotNull(對象...值) | 檢查至少一個對像不為空 |
anyNull(對象...值) | 檢查至少一個對象為空 |
克隆(T對象) | 克隆一個對象 |
cloneIfPossible(T obj) | 克隆對像或返回原始對象 |
比較(T c1,T c2) | 比較對象 |
defaultIfNull(T object, T defaultValue) | 如果對象為空,則返回默認對象 |
等於(對像對象 1,對像對象 2) | 比較兩個對象 |
不相等(對像對象 1,對像對象 2) | 檢查兩個對像是否不相等 |
firstNonNull(T...值) | 返回第一個不為空的對象 |
getFirstNonNull(供應商 |
返回第一個不為空的對象 |
getIfNull(T 對象,供應商 |
如果不為 null 則返回給定對象,否則返回傳遞的 Supplier 的 Supplier.get() 值 |
哈希碼(對象) | 計算對象的哈希碼 |
hashCodeMulti(對象...對象) | 計算一組對象的 hashCode |
isEmpty(對像對象) | 檢查對像是否為空或 null |
isNotEmpty(對像對象) | 檢查對像是否不為空或 null |
requireNonEmpty(T obj) | 檢查對像是否不為空,否則拋出異常 |
requireNonEmpty(T obj,字符串消息) | 檢查對像是否不為空,否則拋出異常 |
identityToString(對像對象) | 返回對象的字符串 |
toString(對像對象) | 返回對象的字符串 |
toString(Object obj, String nullStr) | 返回對象的字符串 |
toString(對像對象,供應商 |
返回對象的字符串 |
讓我們看看每組中的一種方法。我希望您經常使用它們,因為它們非常方便並且可以讓您避免不必要的代碼。
ObjectUtils.compare()
該方法以與比較器相同的方式比較對象:大於、小於或等於。它可用於對對象進行排序。
方法簽名如下所示:
public static <T extends Comparable<? super T>> int compare(final T c1, final T c2);
public static <T extends Comparable<? super T>> int compare(final T c1, final T c2, final boolean nullGreater);
如果第三個參數 ( nullGreater ) 為true,則null將始終被視為大於非null。如果 c1> c2,該方法返回正數,如果 c1<c2,則返回負數,如果 c1 == c2,則返回 0。
例子:
String firstValue = "codeGym";
String secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
firstValue = "codeGym";
secondValue = null;
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
firstValue = "";
secondValue = "codeGym";
System.out.print(ObjectUtils.compare(firstValue, secondValue));
System.out.println();
程序會顯示結果:
0
1
-8
ObjectUtils.isNotEmpty()
isNotEmpty()方法檢查傳遞給它的對象既不是空的也不是null。
方法簽名:
public static boolean isNotEmpty(final Object object)
例子:
List<String> values = new ArrayList<>();
System.out.println(ObjectUtils.isNotEmpty(values));
values.add("codeGym");
System.out.println(ObjectUtils.isNotEmpty(values));
values = null;
System.out.println(ObjectUtils.isNotEmpty(values));
結果將顯示在屏幕上:
false
true
false
java.util.Objects
Java 開發人員非常喜歡ObjectUtils的想法,因此在 JDK 7 中他們添加了自己的:
isNull(Objectobj) | 檢查對像是否為空 |
非空(對像對象) | 檢查對像是否不為空 |
toString(對象) | 將對象轉換為字符串 |
toString(對象,字符串 nullDefault) | 將對象轉換為字符串 |
布爾等於(對象 a,對象 b) | 比較對象 |
布爾 deepEquals(對象 a,對象 b) | 比較對象 |
T requireNonNull(T obj) | 檢查傳遞的參數是否不為空 |
T requireNonNull(T obj,String message) | 檢查傳遞的參數是否不為空 |
int hashCode(Object o) | 計算對象的哈希碼 |
int hash(對象...值) | 計算一組對象的 hashCode |
int 比較(T a,T b,比較器 c) | 比較對象 |
由於java.util.Objects類是 JDK 的一部分,因此建議您在代碼中使用它。
重要的是要注意,當您閱讀別人的代碼時,您很可能會遇到ObjectUtils 的選項,這通常發生在開源中。在這裡您可以看到它們有何不同。