“Optional.get()”而不使用“isPresent()”检查

2022-08-31 07:57:07

我在Java中有以下搜索代码:

return getTableViewController().getMe().getColumns().stream()
    .filter($ -> Database.equalsColumnName($.getId(), columnId))
    .findFirst()
    .get();

我希望按名称查找列并返回找到的第一个列。

我知道有一种情况是没有发现任何东西,应该处理它,但是如何处理?

这是它想要的这个咒骂:

'Optional.get()' without 'isPresent()' check

?

如何修复?如果找不到任何东西,我希望再回来。null

更新

好吧,好吧,我只是没有意识到,这又回来了。findFirst()Optional


答案 1

替换为 orElse(null)。get()


答案 2
...findFirst().orElse(null);

如果存在,则返回值,否则返回 。文档传递的参数可能是(对于 orElseGet 和 orElseThrow 是禁止的)。nullnull


推荐