简介
JDK7新增Objects类,此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。
objects类具备如下方法:
常用方法详解
equals
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
Objects.equals方法做了非空判断,因此不会抛出异常,是空指针安全的。
两个参数相等,则返回true;否则,返回false。
deepEquals
public static boolean deepEquals(Object a, Object b) {
if (a == b)
return true;
else if (a == null || b == null)
return false;
else
return Arrays.deepEquals0a, b);
}
如果两个都是null值的字符串或者数组相比较,返回true。
如果两个参数都是数组,则使用Arrays.deepEquals来确定相等性。参数数组循环时,可以递归调用deepEquals来比较,知道出现不同的元素方结束循环,否则使用第一个参数的equals方法确定是否相等。
hashCode
public static int hashCode(Object o) {
return o != null ? o.hashCode() : 0;
}
用以判断引用o所指的对象是否为null,如果不为null,则返回其hashCOde方法执行结果,否则返回0
hash
public static int hash(Object... values) {
return Arrays.hashCode(values);
}
为输入值生成哈希码,它将所有的输入值都放到一个数组,然后调用Arrays.hashCode(Object[])方法来实现。
警告:当提供的参数是单个对象的引用时,返回值不等于该对象引用的散列码。该值可以通过调用hashCode(Object)来调用
toString
public static String toString(Object o) {
return String.valueOf(o);
}
返回指定对象的字符串表示形式。如果参数为null,则返回字符串"null"
compare
public static <T> int compare(T a, T b, Comparator<? super T> c) {
return (a == b) ? 0 : c.compare(a, b);
}
如果参数相同则返回0,否则返回c.compare(a, b) 。如果两个参数都是null则返回0。
注意:若其中一个参数为null ,是否会抛出空指针异常NullPointerException取决于排序策略,如果有的话,则由Comparator来决定空值null
isNUll 和 nonNull
public static boolean isNull(Object obj) {
return obj == null;
}
判空方法,如果参数为null则返回true,否则返回false
public static boolean nonNull(Object obj) {
return obj != null;
}
判断非空方法,若参数非空返回true,否则返回false