Guava中Objects類提供了很多和Object類作用相同、效率更高的方法可供使用:
1.equal方法
使用Obejct的equals方法進行相等判斷,例如:test.equals("test");如果test為null,則會發(fā)生NullPointerException,Objects的equal方法可以幫助你避免NullPointerException,它的判斷邏輯是這樣的:return a == b || (a !=null && a.equals(b));
所以,可以很放心的使用,Objects.equal(test,"test"),當然在JDK7中也提供了同樣判斷邏輯的方法:Objects.equals(test,"test");
2.hashCode方法
Objects的hashCode方法可以根據(jù)傳入的多個參數(shù)值生成相應的hash值,Objects.hashCode("abc","OK","Yes");
3.firstNonNull方法
Object的firstNonNull方法可以根據(jù)傳入的兩個參數(shù)來返回一個非Null的參數(shù),Objects.firstNonNull(null,"jack"),Guava現(xiàn)在推薦使用MoreObjects.firstNonNull(T first,T second)替代它。
4.toStringHelper
這個方法可以提供調試使用,方便輸出調試數(shù)據(jù):
Objects.toStringHelper(this)
.add("x",1)
.add("y","foo")
.toString();
輸出ClassName{x=1, y=foo},此方法有很多種使用方式,可自行查詢。