Skip to main content
 首页 » 编程设计

介绍Java7的工具类Objects

2022年07月19日114bhlsheji

介绍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
阅读延展