【问题标题】:Best way to write Java 8 map statement that returns constant value [closed]编写返回常量值的 Java 8 map 语句的最佳方法 [关闭]
【发布时间】:2019-07-09 11:39:05
【问题描述】:

我有以下声明。地图总是返回“关闭”。但我认为s -> "CLOSED"这句话可以改写成更好的风格。

有没有更好的方法来表示这个?

String status = myOptional.map(s -> "CLOSED").orElse("OPEN");

【问题讨论】:

  • 为什么需要可选的myOptional
  • 想一想x -> "CLOSED" - 你根本不用x。那么你需要Optional 开头吗?
  • 我喜欢你已经拥有的东西。我想我理解你的问题,但我也认为任何修改的尝试都只是复杂化。
  • @Eugene OP 在这个用例中不需要x,这并不意味着可选在其他地方没有用...... @ZZZ 现在你不能 简化编写并保持函数式风格,毕竟x是需要的,因为你需要明确你不想使用它:-)
  • @Jean-BaptisteYunès 是的,我的意思是,这表明它可能是不需要的,应该更明确地说明这一点。谢谢你的评论

标签: java lambda java-8 optional


【解决方案1】:

只需使用三元运算符来检查它的存在:

String status = myOptional.isPresent() ? "CLOSED" : "OPEN";

【讨论】:

  • 是的。这很好。但我想知道是否有更好的方法来改变 s->"CLOSED"。
  • @ZZZ 很好,因为你没有使用Optional 值,所以不需要map 操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多