Java 说一说JDK1.7中的null值判断

Objects

JDK 1.7中,提供了一个对象工具类 java.util.Objects, 这个类中提供了封装好的非空判断,Objects 类是一个终类,并且它里面的方法都是 static 修饰的。在这里插入图片描述

1. nonNull

注:这个方法是nonNull是JDK1.8的方法。

判断对象不等于空:

if (Objects.nonNull(obj)){
    // 判断不等于空
}

2. isNull

注:这个方法是isNull是JDK1.8的方法。

判断对象等于空:

if (Objects.isNull(obj)){
    // 判断等于空
}

3. requireNonNull

空值检查 并不等同于 空值判断,空值判断是根据对象是否为空而执行不同的分支策略,而空值检查是要求对象不能为空。

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

此方法主要用于在 方法构造函数 中进行参数验证,例如:

public class Foo {
  private final Bar bar;

  public Foo(Bar bar) {
    Objects.requireNonNull(bar);
    this.bar = bar;
  }
}

该方法还提供了一个重载方法 requireNonNull(T obj, String message),可以自定义抛出NPE信息

public class Foo {
  private final Bar bar;

  public Foo(Bar bar) {
    Objects.requireNonNull(bar, "bar must not be null");
    this.bar = bar;
  }
}

使用 requireNonNull 的优势:

  • 提高代码的可读性。
  • 在对象创建的上下文抛出NPE,可以更好的在日志中反应出问题所在。
  • 不需要在别的地方再进行重复的非空判断检查。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhuzicc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值