【问题标题】:Get String value of enum wrapped in Option if not None in scala如果在scala中不是None,则获取包裹在Option中的枚举字符串值
【发布时间】:2020-02-12 03:18:34
【问题描述】:

最简洁的 scala 方法是什么?

假设我有一个可以为 None 的枚举选项。如果它不是None,我如何返回该枚举的String值,否则返回null?

object En extends Enumeration {
  type En = Value
  val val1 = Value("value1")
}

val en = Option(En.val1) // or None

val strVal = if (!en.isEmpty) en.get.toString else null

【问题讨论】:

  • 为什么是null?为什么不是空字符串或为什么不继续使用 *Oprion"?
  • java 互操作性

标签: scala


【解决方案1】:
en.map(_.toString).orNull
en.map(_.toString).getOrElse(null)

但只有在与 Java 交互时才使用它 - 在 Scala 中避免使用 nulls,因此几乎没有任何库接受它们作为有效值并且不自己引入它们会让你的生活更美好。

【讨论】:

【解决方案2】:

我假设您有充分的理由(阅读:Java 互操作)想要 null

val strVal = en.map(_.toString).orNull

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2012-04-25
    • 2013-07-18
    • 2016-12-22
    • 2010-10-10
    相关资源
    最近更新 更多