工具類之Objects

Objects類是JDK1.7新增的一個工具類主要用於非空檢查和比較
在這裏插入圖片描述
主要方法如下:
在這裏插入圖片描述
摘自

//比較兩個對象是否相等(首先比較內存地址,然後比較a.equals(b),只要符合其中之一返回true)
public static boolean equals(Object a, Object b);

//深度比較兩個對象是否相等(首先比較內存地址,相同返回true;如果傳入的是數組,則比較數組內的對應下標值是否相同)
public static boolean deepEquals(Object a, Object b);

//返回對象的hashCode,若傳入的爲null,返回0
public static int hashCode(Object o);

//返回傳入可變參數的所有值的hashCode的總和(這裏說總和有點牽強,具體參考Arrays.hashCode()方法)
public static int hash(Object... values);

//返回對象的String表示,若傳入null,返回null字符串
public static String toString(Object o)

//返回對象的String表示,若傳入null,返回默認值nullDefault
public static String toString(Object o, String nullDefault)

//使用指定的比較器c 比較參數a和參數b的大小(相等返回0,a大於b返回整數,a小於b返回負數)
public static <T> int compare(T a, T b, Comparator<? super T> c) 

//如果傳入的obj爲null拋出NullPointerException,否者返回obj
public static <T> T requireNonNull(T obj) 

//如果傳入的obj爲null拋出NullPointerException並可以指定錯誤信息message,否者返回obj
public static <T> T requireNonNull(T obj, String message)

-----------------------------以下是jdk8新增方法---------------------------

//判斷傳入的obj是否爲null,是返回true,否者返回false
public static boolean isNull(Object obj)

//判斷傳入的obj是否不爲null,不爲空返回true,爲空返回false (和isNull()方法相反)
public static boolean nonNull(Object obj)

//如果傳入的obj爲null拋出NullPointerException並且使用參數messageSupplier指定錯誤信息,否者返回obj
public static <T> T requireNonNull(T obj, Supplier<String> messageSupplier)

總結:
建議日常比較對象的時候可以用Objects.equals(a,b)避免空指針異常,Object類型轉化String建議用
Objects.toString(a,""),避免用Object.toString 當Object爲null時會報空指針異常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章