如果可选布尔值为真,如何执行操作?

新手上路,请多包涵

在 Java 8 中,我有一个变量,包含一个可选的布尔值。

如果可选项不为空,并且包含的布尔值为真,我想要执行一个动作。

我梦想着类似 ifPresentAndTrue 的东西,这里有一个完整的例子:

 import java.util.Optional;

public class X {
  public static void main(String[] args) {
    Optional<Boolean> spouseIsMale = Optional.of(true);
    spouseIsMale.ifPresentAndTrue(b -> System.out.println("There is a male spouse."));
  }
}

原文由 slartidan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 444
2 个回答

为了良好的秩序

if (spouseIsMale.orElse(false)) {
    System.out.println("There is a male spouse.");
}

清除。

原文由 Joop Eggen 发布,翻译遵循 CC BY-SA 3.0 许可协议

可以使用 .filter(b -> b) 实现该行为:

 spouseIsMale.filter(b -> b).ifPresent(b -> System.out.println("There is a male spouse."));

然而,它需要一些 大脑执行时间 来理解这里发生的事情。

原文由 slartidan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题