当前位置: 首页 > 知识库问答 >
问题:

“可选值只能在调用isPresent()后访问”,但如果有多个值,则应签入

司马念
2023-03-14

我收到一个包含lastName和firstName的客户对象。在转换中,我检查两个值是否都不为空,然后将它们传递到DTO:

if (customer.getFirstName().isPresent() && customer.getLastName().isPresent()) {
      final String firstName = customer.getFirstName().get();
      final String lastName = customer.getLastName().get();
      // do assignment
}

但我仍然得到Sonar消息可选值应该只有在调用isPresent()后才能访问。

我是漏掉了什么还是误报了?

共有1个答案

廉志强
2023-03-14

使用ifPresent如何:

customer.getFirstName().ifPresent(name1->
  customer.getLastName().ifPresent(name2->
      final String firstName = name1;
      final String lastName = name2;
  );
);
 类似资料:
  • 我如何根据声纳lint规则更改代码? 我的代码如下: 我不能通过声纳规则。我怎么能改变我的代码?

  • 我正在使用Spring数据Mongo Pageable和声纳给我以下错误: 我尝试了几个选择,但都没有成功。

  • 在Java8中有没有更优雅的方法来实际实现这一点呢? 我说的是后跟,我想在列表中优雅地收集具有值的结果。

  • 问题内容: 我对这种函数式编程和流技术有点陌生,但是我所知道的一点却非常有用! 我遇到过几次这种情况: 我真正想要的是: 我认为,除了与结合使用外,该东西在其他情况下也可能有用。当我成为超级n00b时,我花了很多时间重新发明Java Collections Framework,因为我不知道它在那里,所以我试图不重蹈覆辙。Java是否提供了执行此操作的好方法?我说错了吗? 谢谢! 编辑:这是案例的一

  • 我在SQL Server2012中创建了以下存储过程... 它将显示类似于下面的输出... 我想让它做的是显示前几周的票数(今天和前6天),即使其中一些天没有门票进入。对他们来说只会显示0。因此,我的输出将看起来包含周四、周五、周六、周日、周一、周二、周三。

  • 我对函数式编程和流的东西有点陌生,但我所知道的一点非常有用! 我认为除了与结合使用之外,还可以在其他情况下使用。当我还是uber n00b的时候,我花了很多时间重新设计Java集合框架,因为我不知道它在那里,所以我试着不重复我的错误。Java是否提供了一种很好的方法来完成的事情?我说错了吗? 谢谢! 编辑:下面是一些案例的示例数据。如果忽略步骤: