java.util.Objects類是java7新增的工具類,其中提供了一些可以避免空指針異常的方法。
- 判斷對象為空
判斷對象為空的方法是:isNull(Object obj);
示例代碼如下圖所示:
執行結果如下圖所示:
- 判斷對象不為空
判斷對象不為空的方法是:nonNull(Object obj);
示例代碼如下所示:
執行結果如下圖所示:
- 要求對象不能為空,為空則拋出異常
要求對象不能為空,為空則拋出異常的方法有多個,分別為:
requireNonNull(T obj):對象為空時,拋出默認的異常。相關的示例代碼如下所示:
執行結果如下圖所示:
requireNonNull(T obj, String messge): 對象為空時,拋出指定messge信息的異常。相關示例代碼如下所示:
執行結果如下圖所示:
requireNonNull(T obj, Supplier messageSupplier): 對象為空時,通過指定的生產者對象來獲取異常信息。示例代碼如下所示:
執行結果如下圖所示:
requireNonNullElse(T obj, T defaultObj): 對象為空時,使用傳入的默認對象。如果傳入的默認對象也為為空,則拋出默認的異常。示例代碼如下所示:
執行結果如下圖所示:
requireNonNullElseGet(T obj, Supplier extends T> supplier ): 對象為空時,通過傳入的生成者對象來獲取一個對象,若獲取的對象不為空,則返回該對象。若獲取的對象為空,則拋出獲取對象為空的異常。示例代碼如下所示:
執行結果如下圖所示:
- 對象判斷相等
判斷對象相等的方法為:equals(Object a, Object b) 和 deepEquals(Object a, Object b)兩個方法。相對於equals方法來說,deepEquals方法還可以比較兩個數組或其他集合是否相等。示例代碼如下所示:
執行結果如下圖所示:
- 判斷兩個對象的大小
判斷兩個對象的大小的方法是:compare(T a, T b, Comparator super T> c)。該方法,需要傳入一個比較器。示例代碼如下圖所示:
執行結果如下圖與所示:
自此,Objects的常用方法就已經介紹完畢。