我喜欢定义一个返回类对象的工厂方法,例如用于创建 gui 对象。
我定义了一个方法
def getWorkerClass2[T <: Component]():Class[T] = {return classOf[Frame]; }
它返回组件类的子类,但 Scala 编译器提示
type mismatch;
found : Class[java.awt.Frame](classOf[java.awt.Frame])
required: Class[T]
def getWorkerClass2[T <: Component]():Class[T] = {return classOf[Frame]; }
^
我不知道为什么。
编辑:
我正在使用 Scala 2.10
最佳答案
方法一:
class C {
def getWorkerClass2: Class[_ <: Component] = classOf[Frame]
}
方法二:
trait Worker {
def getWorkerClass2: Class[_ <: Component]
}
class A extends Worker {
def getWorkerClass2 = classOf[Frame]
}
class B extends Worker {
def getWorkerClass2 = classOf[Window]
}
关于scala - 如何返回一个子类的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22376568/