我对Optional.ofNullable方法感到惊讶.有一天我写了一个应该返回Optional的函数:
private Optional<Integer> extractFirstValueFrom(InsightsResponse insight) {
return Optional.ofNullable(insight.getValues().get(0).getValue());
}
Run Code Online (Sandbox Code Playgroud)
我错误地认为Optional.ofNullable会阻止任何NullPointerExceptions内部的参数表达.
现在我想我知道这是非常愚蠢的想法.Java必须首先解析参数以将其传递给Optional.ofNullable调用.
但我有一个问题.有没有一个很好的方法来实现我的目标?我想从表达式获取insight.getValues().get(0).getValue()一些Integer值或null.Null可以是表达式中的每一个:insight.getValues()或insight.getValues().get(0).
我知道我可以把它放在try/catch块中,但我想知道是否有更优雅的解决方案.