如何在scala中构造动态枚举

时间:2013-03-10 14:44:32

标签: scala generics

如何在Scala中构建动态EnumCreator?

class EnumCreater{
  def create[T <: Enum[_]](clazz :Class[T],input:String):T = Enum.valueOf(clazz,input)
}

sclac编译器报告:

error: inferred type arguments [T] do not conform to method valueOf's type parameter bounds [T <: java.lang.Enum[T]]

我试过asInstanceOf来解决这个问题,它不起作用。那我该怎么办?

1 个答案:

答案 0 :(得分:1)

为了使其编译,您需要将_替换为T

def create[T <: Enum[T]](clazz: Class[T], input: String): T = 
  Enum.valueOf(clazz, input)