为什么这个带枚举的通用代码不能编译

时间:2014-05-09 11:33:56

标签: scala enums

abstract class C[T] {
  def lee: T
}

class CE[T <: Enumeration](val enum: T) extends C[enum.Value] {
  def lee = enum.values.toList(0)
}

我收到的错误是:CE.this.type类型的表达式## enum#值不符合预期类型enum.type#Value

我正在使用Scala 2.10.4。 我的目的是在枚举上编写通用代码。

1 个答案:

答案 0 :(得分:1)

我认为你需要:

class CE[T <: Enumeration](val enum: T) extends C[T#Value] {
  def lee = enum.values.toList(0)
}

你可以用:

创建
val c = new CE[Days.type](Days)