返回博主主页

java 如何像 js 一样使用 ?( optional chaining operator)

在 Java 中,没有像 JavaScript 中的可选链操作符(optional chaining operator)一样的语法。但是,可以使用 Java 8 中引入的 Optional 类来实现类似的功能。

假设我们有一个包含嵌套对象的类:

public class MyClass {
    private MyOtherClass myOtherClass;
    // getters and setters
}

public class MyOtherClass {
    private MyThirdClass myThirdClass;
    // getters and setters
}

public class MyThirdClass {
    private String name;
    // getters and setters
}

我们想要获取 MyClass 对象中的 MyThirdClass 对象的名称属性,但是可能会遇到 NullPointerException 异常。可以使用 Optional 类来避免这个问题:

Optional.ofNullable(myClass)
        .map(MyClass::getMyOtherClass)
        .map(MyOtherClass::getMyThirdClass)
        .map(MyThirdClass::getName)
        .orElse(null);

这里,我们使用 Optional.ofNullable 方法将 myClass 对象转换为 Optional 对象,然后使用 map 方法逐级获取嵌套对象的属性。如果任何一个属性为 null,则整个表达式返回 null。最后,我们使用 orElse 方法指定默认值,以避免返回 null 值。

需要注意的是,虽然这种方式可以避免 NullPointerException 异常,但是可能会导致代码变得更加复杂。因此,应该谨慎使用 Optional 类来实现类似于 JavaScript 的可选链操作符的功能。

posted @ 2024-09-26 19:51  懒惰的星期六  阅读(12)  评论(0编辑  收藏  举报

Welcome to here

主页