Я был удивлен методом Optional.ofNullable
. В какой-то день я написал функцию, которая должна возвращать необязательный параметр:
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()
некоторое значение Integer или null. Нулевым может быть каждое из выражений: insight.getValues()
или insight.getValues().get(0)
.
Я знаю, что могу просто поместить это в блок try/catch, но мне интересно, есть ли более элегантное решение.