我正在尝试创建一个类列表,如下所示:
abstract class Animal {
def name = this.getClass.getName
def say: String
}
class Dog extends Animal {
def say = "Woof"
}
class Cat extends Animal {
def say = "Meow"
}
val animalClasses = List(Dog, Cat)
这会在最后一行出现,并显示错误消息:
Zoo.scala:18: error: not found: value Dog
请注意,我可以使用List(new Dog(), new Cat())
轻松创建类的实例列表,但这不是我想要的。
答案 0 :(得分:3)
你去了:
scala> List(classOf[Dog],classOf[Cat])
res1: List[Class[_ >: Cat with Dog <: Animal]] = List(class Dog, class Cat)
根据this:
预定义函数classOf [T]返回Scala类类型T的运行时表示。