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