Object判空,Objects工具类解析

一般用JDK提供的基础工具类 Objects 判断即可。

1、Objects.isNull

//Test类中定义 静态成员变量
private static Student stu;

public static void main(String[] args) {

// new后分配了内存地址,即变为非空。就像有个瓶子,但是没有水。
        Student student1 = new Student();   
        boolean flag = Objects.isNull(stu);
        System.out.println("flag = " + flag);

        boolean flag1 = Objects.isNull(student1);
        System.out.println("flag1 = " + flag1);

 }

//输出
flag = true
flag1 = false

2、Objects.requireNonNull

若入参 object 为 null ,抛出自定义message的空指针异常:NullPointerException(message)

private static Student stu;
public static void main(String[] args) {
        Objects.requireNonNull(stu,"入参对象为空");

        Student student1 = new Student();
        boolean flag = Objects.isNull(stu);
        System.out.println("flag = " + flag);

}

//输出
Exception in thread "main" java.lang.NullPointerException: 入参对象为空
	at java.util.Objects.requireNonNull(Objects.java:228)
	at com.xiexie.demo.Test.main(Test.java:22)

3、Objects类 方法解析 

私有构造,final 修饰

 可以看到除了构造器,其他的全是静态方法。requireNonNull、toString 有重载方法

 (1)compare

Comparator<? super T> c 是函数式接口(一般是直接new一个匿名内部类或用Lambda 表达式)

 (2)deepEquals

会调用Arrays.deepEquals()方法,比较多维数组是否深层相等。

 (3)equals

|| 后会调用Object类的equals方法。

 (4)hash

入参 Object... 【...】表示可变长度参数列表,或者是一个该类型的数组。在

 Arrays.hashCode里面最终会调用Object类的hashCode方法。

 (5)hashCode

单个Object入参,直接调用Object类的hashCode方法。

 (6)isNull

 (7)nonNull

(8)requireNonNull

泛型方法。若为null,直接抛出空指针;若非空,返回原来的对象。

若有异常,自定义信息message。

重载方法,有Supplier 参数(函数式接口)。

 

 (9)toString

底层调用 String 类的 valueOf 静态方法。

String为空,有默认值的重载方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值