当前位置: 首页 > 面试题库 >

不带“ isPresent()”检查的“ Optional.get()”

巫培
2023-03-14
问题内容

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

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

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

我了解在某些情况下什么也找不到,应该对其进行处理,但是如何处理呢?

这是这个咒骂所要的:

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

怎么修?null如果没有发现,我希望返回。

更新

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


问题答案:

替换get()orElse(null)



 类似资料:
  • 有人能解释一下<code>是可选的</code>如何帮助我们避免<code>NullPointerException</code>吗? 这段代码不是也容易出现<code>NullPointerException</code>吗?如果是这样的话,那么为什么这个代码比其他代码更受欢迎 除了帮助我们了解函数是否实际具有返回值之外,还提供了什么可能的好处

  • 我有以下Java中的搜索代码: 我希望按名称查找列并返回第一个找到的列。

  • 编译器显示下一个错误:在这里输入图像描述

  • 我想进行更新,但我想添加的条件检查不是基于主表的哈希/范围,而是基于GSI。 实际上,如果给定属性(即GSI的哈希)已经存在,我希望保存失败。 例如,在一个虚构的employees表中,“SSN”是散列键,“EmployeeId”上有一个GSI。这两个属性都必须是独一无二的。在保存员工时,我希望确保表中没有使用“SSN”或“EmployeeId”。我可以用表的散列,也就是SSN,但不能用GSI的散

  • 我确信我在这里遗漏了一些显而易见的东西,但我不知道如何针对客户检查现有卡。 我在laravel应用程序中使用stripe connect api代表他人管理付款,基本流程如下: < Li > stripe < code >令牌通过< code>stripe.js创建,并与支付表单一起提交 < li >如果客户存在于本地数据库中,我获取他们的< code>stripe_id,否则使用令牌作为源/卡创

  • 我正在制作一个函数来返回布尔值,以了解元素是否存在,但我得到 我怎么才能得到唯一的真实或虚假响应,请帮助,我使用了if条件,但它显示了该响应…… 这是我调用的函数