2017-10-04 73 views
3

我开始学习scala,并且我没有什么问题。我想将字符串值转换为Enum,但出现错误No value found for "TEST"。我有什么错误?Scala将字符串转换为枚举值

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

回答

2

你误解Enumeration,则实际上是Value的参数,对于你的例子应该是

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

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

@return Fresh value called name

值(名称:字符串):值=值(nextId,名称)

withName定义:

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

+0

感谢您的回答,是否有可能创建像java中的函数枚举? –

+0

你可以使用'case'来模拟Java的'enum' – chengpohi

2

应使用下列条件之一:

println(Function1.TEST) 
Enumeration

println(Function1.withName("1")) 
+0

感谢您的回答。我认为它的工作有点不同。是否有可能创建函数给每个枚举像java一样? –