如何优雅的进行嵌套判空
时间: 2024-05-04 09:19:48 浏览: 115
在进行嵌套判空时,我们可以使用 Java 8 中引入的 Optional 类型来实现优雅的代码编写。
例如,我们有一个对象 A,它可能包含一个属性 B,而属性 B 又可能包含一个属性 C,我们需要获取属性 C 的值:
```
if (A != null && A.getB() != null && A.getB().getC() != null) {
// 获取属性 C 的值
}
```
可以使用 Optional 类型来简化上述代码:
```
Optional.ofNullable(A)
.map(A::getB)
.map(B::getC)
.ifPresent(c -> {
// 获取属性 C 的值
});
```
通过 Optional 类型的链式调用,我们可以避免嵌套的 if 判断,代码更加简洁易读。值得注意的是,ifPresent 方法只会在属性 C 不为空时执行,因此不需要再进行一次判空。
阅读全文