介紹Java7的工具類Objects
本文介紹Java7引入的工具裏Objects,使用其API可以讓代碼更簡潔。
1. 概述
在jdk7添加了一個objects工具類,它提供了一些方法來操作對象,它由一些靜態的實用方法組成,這些方法是null-safe (空指針安全的)或null-tolerant(容忍空指針的),用於計算對象的hashcode、返回對象的字符串表示形式、比較兩個對象。
Objects繼承Object,並重載了其中一些方法,使其API更加方便、功能強大。下面通過示例介紹幾個常用的方法。
2. 示例
2.1. equals方法
我們首先看看equals方法,聲明如下:
public static boolean equals(Object a, Object b)
如果兩個參數彼此相等返回true,反之爲false。但該方法可以避免空指針。
public class EqualsExample {
public static void main(String... args) {
String s1 = "testStr";
String s2 = "testStr";
boolean b = equals(s1, s2);
System.out.println(b);
int[] arr1 = {3, 5, 7};
int[] arr2 = {3, 5, 7};
b = equals(arr1, arr2);
System.out.println(b);
b = equals(null, null);
System.out.println(b);
b = equals(null, arr1);
System.out.println(b);
}
public static boolean equals(Object o1, Object o2) {
return Objects.equals(o1, o2);
}
}
輸出如下:
true
false
true
false
2.2. toString法
toString方法有兩個重載方法:
String toString(Object o)
String toString(Object o, String nullDefault)
前者方法對於非null參數調用toString方法,null參數則返回"null".
第二個方法,當參數不爲null時調用toString方法,反之則返回第二個參數。
我們看一個場景,從列表中獲取一個對象元素,然後調用toString方法:
Object stu = list.get(0);
if (stu != null){
System.out.println(stu.toString());
}
採用Objects的toString方法代碼可以簡化爲:
Object stu = list.get(0);
System.out.println(stu.toString(),“”);
當然默認值可根據業務進行設置。
2.3 requireNonNull方法
看下面一段代碼,主要使用requireNonNull方法檢查參數是否爲空。
public RGA(String nodeId, String crdtId) {
this.crdtId = Objects.requireNonNull(crdtId, "CrtdId must not be null");
Objects.requireNonNull(nodeId, "NodeId must not be null");
this.clock = new StrictVectorClock(nodeId);
this.start = new Vertex<>(null, clock);
this.vertices = HashMap.of(clock, start);
}
3. 總結
本文介紹了Java7的工具類Objects,使用其API可代碼更強壯、簡潔。