在 java 8+ 中,使用 ispresent() 判断值是否存在,使用 isempty() 判断值是否为空。这两个方法返回布尔值,通常配合 if-else 或 orelse() 链式调用处理逻辑。

如何检查 Optional 是否包含非空值
通过调用 isPresent() 方法可以确认 Optional 对象内部是否封装了一个非 null 的值。如果值为空(即 Optional.empty()),该方法返回 false;否则返回 true。这是最基础的判空方式,适用于需要显式分支处理的场景。

import java.util.Optional;
public class Main {
public static void main(String[] args) {
Optional<string> present = Optional.of("Hello");
Optional<string> empty = Optional.empty();
if (present.isPresent()) {
System.out.println("Value is: " + present.get());
} else {
System.out.println("No value");
}
if (!empty.isPresent()) {
System.out.println("Empty detected");
}
}
}</string></string>
运行结果:
Value is: Hello
Empty detected
如何检查 Optional 是否为空状态
Java 10 引入了 isEmpty() 方法,它是 isPresent() 的逻辑取反。当 Optional 为空时返回 true,有值时返回 false。推荐使用 isEmpty() 替代 !isPresent(),语义更清晰且符合现代 Java 风格。

import java.util.Optional;
public class Main {
public static void main(String[] args) {
Optional<string> present = Optional.of("World");
Optional<string> empty = Optional.empty();
if (present.isEmpty()) {
System.out.println("Should not print");
} else {
System.out.println("Has value: " + present.orElse("default"));
}
if (empty.isEmpty()) {
System.out.println("Confirmed empty");
}
}
}</string></string>
运行结果:
Has value: World
Confirmed empty
基于 Optional 输入条件判断具体行为
当 Optional 作为方法参数传入时,其内部状态直接决定后续逻辑走向。若输入为 Optional.ofNullable(null),则 isPresent() 为 false,isEmpty() 为 true,程序应进入默认值或异常处理分支。实际开发中建议优先使用 orElse()、orElseGet() 或 map() 等函数式方法替代显式判断,以减少样板代码。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











