理解Scala类型推断和扩展类型

理解Scala类型推断和扩展类型,scala,types,Scala,Types,我们有以下课程: class MyClass[T <: Enum[T]](val clazz: Class[T]){ def dummy = println(clazz.toString) } class MyClass[T因此,为了再次检查,我理解了这个问题: 这项工作: def createMyClass(clazz: Class[_]) = if(clazz.isEnum) new MyClass(clazz.asInstanceOf[Class[T f

我们有以下课程:

class MyClass[T <: Enum[T]](val clazz: Class[T]){
  def dummy = println(clazz.toString)
}

class MyClass[T因此,为了再次检查,我理解了这个问题:

这项工作:

def createMyClass(clazz: Class[_]) =
    if(clazz.isEnum)
        new MyClass(clazz.asInstanceOf[Class[T forSome { type T <: Enum[T] }]])
    else 
        throw new IllegalArgumentException(s"$clazz is not an enum")
def createMyClass(clazz:Class[\uz])=
if(clazz.isEnum)
新的MyClass(clazz.asInstanceOf[Class[T for some{type T
def createMyClass(clazz: Class[_]) =
    if(clazz.isEnum)
        new MyClass(clazz.asInstanceOf[Class[T forSome { type T <: Enum[T] }]])
    else 
        throw new IllegalArgumentException(s"$clazz is not an enum")
def createMyClass(clazz: Class[_]) =
    if(clazz.isEnum)
        new MyClass(clazz.asInstanceOf[Class[Enum[T] forSome { type T <: Enum[T] }]]) 
    else 
        throw new IllegalArgumentException(s"$clazz is not an enum")
class MyClass[T <: Enum[T]](val clazz: Class[Enum[T]]){
    def dummy = println(clazz.toString)
}