Java 中的 Optional 类是在 Java 8 中引入的一个重要类,它的作用是帮助开发者更好地处理可能为 null 的值,避免空指针异常,并且提高代码的可读性。
以下是 Optional 类的一些作用:
map
、flatMap
、filter
等,这些方法可以帮助开发者在处理 Optional 对象时更加灵活地进行操作。虽然 Optional 类在某些情况下可能会增加一些额外的代码复杂性,但它在提高代码的可靠性和可读性方面具有重要作用,特别是在处理可能为 null 的情况时。
/**
* @author : zanglikun
* @date : 2/22/24 16:36
* @desc : Copyright ? zanglikun.com
*/
public class TestOptional {
@Data
@AllArgsConstructor
static class A {
private B b;
}
@Data
@AllArgsConstructor
static class B {
private C c;
}
@Data
@AllArgsConstructor
static class C {
private String word;
}
public static void main(String[] args) {
A a = new A(new B(new C("我是C的字符串")));
// 如果我要去拿C的字符串如何拿?
if (Objects.nonNull(a)) {
if (Objects.nonNull(a.getB())) {
if (Objects.nonNull(a.getB().getC())) {
String word = a.getB().getC().getWord();
System.out.println(word);
}
}
}
// 新式写法
Optional<String> optional = Optional.of(a)
.map(A::getB)
.map(B::getC)
.map(C::getWord);
if (optional.isPresent()) {
System.out.println(optional.get());
}
}
}