私にはOKのようです:コメントへの返信で
object WeekDay extends Enumeration {
type WeekDay = Value
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
> makeList(WeekDay)
res2: List[WeekDay#Value] = List(Mon, Tue, Wed, Thu, Fri, Sat, Sun)
> makeList(WeekDay.Mon)
error: inferred type arguments [WeekDay.Value] do not conform to method makeList's type parameter bounds [E <: Enumeration]
makeList(WeekDay.Mon)
^
UPDATE:
私は代わりVal
のValue
入れ子になったクラスをオーバーライドすることができる誰かを推測する(Iだけソースを見て、それは封印されていない)が、私は理由を考えることができません。
object Bool extends Enumeration {
type Bool = Value
val True, False = Value
}
> Bool.True.getClass
res8: java.lang.Class[_] = class scala.Enumeration$Val
> Bool.True.getClass == WeekDay.Mon.getClass
res7: Boolean = true
私はscalaと思う唯一の人です.Enumerationはかなり壊れていますか? – soc
私はScalaの初心者ですが、列挙に関しては、フィールドや他のメソッドを追加するという可能性をもって、Javaでよりうまく機能しました...もちろん、ケースオブジェクトを持つ密閉された特性は、インスタンスは、すべての定義された要素で 'values' seqを提供しません。 –