java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java判断null

Java判断null的几种方式及适用场景分析

作者:数据库那些事儿

在 Java 中,判断对象是否为 null 是编程中最常见的操作之一,以下是几种主要的判断方式及其适用场景,感兴趣的朋友一起看看吧

在 Java 中,判断对象是否为 null 是编程中最常见的操作之一。以下是几种主要的判断方式及其适用场景:

一、直接使用 == null(最基础)

if (obj == null) {
    // 对象为 null 的处理逻辑
}

二、Objects.isNull ()(JDK 8+)

import java.util.Objects;
if (Objects.isNull(obj)) {
    // 对象为 null 的处理逻辑
}

三、Objects.nonNull ()(JDK 8+)

if (Objects.nonNull(obj)) {
    // 对象不为 null 的处理逻辑
}

四、Optional 类(JDK 8+)

import java.util.Optional;
Optional<String> optional = Optional.ofNullable(obj);
if (optional.isPresent()) {
    // 对象不为 null 的处理逻辑
} else {
    // 对象为 null 的处理逻辑
}
// 更优雅的用法(避免 if-else)
optional.ifPresent(value -> System.out.println(value));

五、Apache Commons Lang(第三方库)

import org.apache.commons.lang3.ObjectUtils;
if (ObjectUtils.isEmpty(obj)) {
    // 对象为 null 或空(适用于字符串、集合等)
}
if (ObjectUtils.isNotEmpty(obj)) {
    // 对象不为 null 且非空
}

六、StringUtils(Apache Commons Lang)

专门用于字符串的空值判断:

import org.apache.commons.lang3.StringUtils;
if (StringUtils.isBlank(str)) {
    // 字符串为 null、空字符串或仅含空格
}
if (StringUtils.isEmpty(str)) {
    // 字符串为 null 或空字符串(不检查空格)
}

七、三元运算符(简化赋值)

// 对象为 null 时赋默认值
String result = (obj == null) ? "default" : obj;
// 等价于
String result;
if (obj == null) {
    result = "default";
} else {
    result = obj;
}

八、使用断言(开发阶段)

import static org.junit.Assert.assertNotNull;
// 在测试或开发阶段强制要求对象非空
assertNotNull(obj, "对象不能为 null");

性能对比

方式性能(相对)
== null最快
Objects.isNull()接近 ==
Optional较慢(涉及对象创建)

最佳实践

示例对比

传统方式

if (user != null && user.getAddress() != null && user.getAddress().getCity() != null) {
    System.out.println(user.getAddress().getCity());
}

Optional 方式

Optional.ofNullable(user)
        .map(User::getAddress)
        .map(Address::getCity)
        .ifPresent(System.out::println);

根据场景选择合适的判断方式,既能保证代码健壮性,又能提升可读性。

到此这篇关于Java判断null的几种方式的文章就介绍到这了,更多相关Java判断null内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文