介紹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可代碼更強壯、簡潔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章