小编Nau*_*fal的帖子

Null Coalescing Operator的替代方案

使用Java,为了安全地访问深层嵌套引用 a.b.c.d.e,我们通常必须在每个级别指定空检查或包装Optional并使用orElse().(与Kotlin/C#等语言a?.b?.c?.d?.e或类似作品不同.

我想知道以下帮助方法是否是一个合理的替代方法:

public <T> T valueOrNull(Supplier<T> expression) {
    try {
        return expression.get();
    } catch (NullPointerException e) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后可以安全地使用它value = valueOrNull(() -> a.b.c.d.e).

注意:据我所知,NullPointerException由于性能原因等原因,捕获s通常是不受欢迎的,但是想知道这里的用法是否是一个合理的例外.

java null nullpointerexception null-coalescing-operator

8
推荐指数
1
解决办法
1682
查看次数