介绍Java7的工具类Objects

介绍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可代码更强壮、简洁。

原创文章 408 获赞 792 访问量 154万+

猜你喜欢

转载自blog.csdn.net/neweastsun/article/details/105622595