Ответ 1
Замените get()
на orElse(null)
.
У меня есть следующий код поиска в Java:
return getTableViewController().getMe().getColumns().stream().filter($->Database.equalsColumnName($.getId(), columnId)).findFirst().get();
Я хотел найти столбец по имени и вернуть первый найденный.
Я понимаю, что есть случай, когда ничего не найдено и оно должно обрабатываться, но как?
Это то, что он хочет от этого ругательства:
'Optional.get()' without 'isPresent()' check
?
Как исправить? Я хочу вернуть null
, если ничего не найдено.
UPDATE
Хорошо, хорошо, я просто не понял, что findFirst()
возвращает Optional
.
Замените get()
на orElse(null)
.
...findFirst().orElse(null);
Возвращает значение, если оно присутствует, в противном случае возвращает null
. В документации говорится, что передаваемый параметр может быть null
(что запрещено для orElseGet
и orElseThrow
).