gpt4 book ai didi

java - 如何从 Scala 字符串转换为 Java 枚举

转载 作者:行者123 更新时间:2023-12-01 16:59:22 27 4
gpt4 key购买 nike

我有一个 API,它接收代表某种语言的字符串。我的 Scala 代码(使用 Scalatra 作为 API)调用我必须支持的现有 Java 代码。此 Java 代码期望该语言采用它定义的枚举形式。

我可以对字符串进行详尽的模式匹配以返回正确的枚举元素,但我必须相信有更好的方法?

例如,我可以这样做:

      f.language.value.get.toUpperCase.split(",").map {
case "ALL" => JavaLanguageEnum.ALL
case "AAA" => JavaLanguageEnum.AAA
case "BBB" => JavaLanguageEnum.BBB
case "CCC" => JavaLanguageEnum.CCC
case "DDD" => JavaLanguageEnum.DDD
case "EEE" => JavaLanguageEnum.EEE
case "FFF" => JavaLanguageEnum.FFF
case _ => JavaLanguageEnum.ALL
}.toList

...但这将是完成这项工作的相当大的代码。有没有更好的方法来简单地说,“如果字符串与其中一个枚举匹配,则返回该枚举,以便我可以将其传递进去?”

最佳答案

Java 的 Enum 实际上已经有一个方法来处理这个问题; valueOf 。只需将 String 传递给该方法,并将其包装在 try...catch block 中即可处理不匹配的情况。

f.language.value.get.toUpperCase.split(",").map {
try {
JavaLanguageEnum.valueOf(_)
} catch {
case e: IllegalArgumentException => JavaLanguageEnum.ALL
}
}

关于java - 如何从 Scala 字符串转换为 Java 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com