存在型について少し混乱します。
これは私のために働く:
def valueOf(c: Class[_], name: String) {
type C = Class[T] forSome {type T <: Enum[T]}
Enum.valueOf(c.asInstanceOf[C], name)
}
しかし、これはしません:
def valueOf(c: Class[_], name: String) {
type T = T forSome {type T <: Enum[T]}
Enum.valueOf(c.asInstanceOf[Class[T]], name)
}
私の考えでは、両方の式は次と同等です。
Enum.valueOf(z.asInstanceOf[Class[T] forSome {type T <: Enum[T]}], name)
しかし、Scala は、それは私の頭の中だけだと言っています。
inferred type arguments [T] do not conform to method valueOf's type parameter bounds [T <: Enum[T]]
Enum.valueOf(c.asInstanceOf[Class[T]], name)
^