如何创建类列表?

时间:2016-03-04 16:17:05

标签: scala

我正在尝试创建一个类列表,如下所示:

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())轻松创建类的实例列表,但这不是我想要的。

1 个答案:

答案 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的运行时表示。