java之Objects类

2022-11-25,

Objects类概述

在JDK7添加了一个Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。

常用方法

public static boolean equals(Object a, Object b) :判断两个对象是否相等。
我们可以查看一下源码,学习一下:

public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
    }

tips:

null是不能调用方法的,会抛出空指针异常NullPointerException 。在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。

代码举例

package ObjectsTest;

import java.util.Objects;

public class ObjectsEquals {
    public static void main(String[] args) {
        String s1 = null;
        String s2 = "张三";
        boolean equals = Objects.equals(s1, s2);
        System.out.println("s1是否等于s2:" + equals);//s1是否等于s2:false
    }
}

public static T requireNonNull(T obj) :查看指定引用对象不是null

查看源码发现这里对为null的进行了抛出异常操作:

public static <T> T requireNonNull(T obj, String message) {
        if (obj == null)
            throw new NullPointerException(message);
        return obj;
    }

代码举例:

package ObjectsTest;

import java.util.Objects;

public class ObjectsRequireNonNull {
    public static void main(String[] args) {
        getElement(null, 5);
    }

    //对方法参数进行非空判断
    public static int getElement(int[] array, int index) {
        //对传递过来的参数进行合法性判断,判断是否为null
        /*if(obj == null){
            throw new NullPointerException("传递的对象的值是null");
        }*/

        //Objects.requireNonNull(obj);
        Objects.requireNonNull(array, "传递的对象的值是null");
        return array[index];
    }
}

代码执行后的结果

java之Objects类的相关教程结束。

《java之Objects类.doc》

下载本文的Word格式文档,以方便收藏与打印。