Я был удивлен методом 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, но мне интересно, есть ли более элегантное решение.