介绍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可代码更强壮、简洁。
本文参考链接:https://blog.csdn.net/neweastsun/article/details/105622595