Scala 将字符串转换为带有值的枚举

Mat*_*zak 5 enums scala

我开始学习scala,没有什么问题。我想将字符串值转换为枚举但发生错误No value found for "TEST"。我犯了什么错误?

object Function1 extends Enumeration {
    val TEST = Value("1")
    val TES = Value("2")
    val TE = Value("3")
  }
 println(Function1 withName "TEST")
Run Code Online (Sandbox Code Playgroud)

che*_*ohi 4

您误解了的名称Enumeration,实际上的名称EnumerationValue的参数,因为您的示例应该是1

/** 创建一个新值,该值是该枚举的一部分,称为name

@param name 该值的人类可读名称。

@return 名为 的新值name

值(名称:字符串):值 = 值(n​​extId,名称)

以及withName定义:

Value从 this 中返回一个Enumeration名称与参数匹配的名称s。名称是通过反射自动确定的。