我试图在编译时列出一个包中的所有类。
让我们定义一个具有以下结构的项目:
com.main
Main.scala
com.package
Method.scala
com.package.method1
Method1.scala
com.package.method2
Method2.scala
在哪里:
方法.scala
abstract class Method(val name: String) {
}
Method1.scala 和 Method2.scala(更改各自的名称)
class Method1 extends Method(name = "Method1") {
}
我想从 Main.scala 获取 com.package._ 中定义的类列表:
object Main() {
val names = List("Method1", "Method2")
}
我可以对名称进行硬编码(如图所示),但我想知道是否可以在编译时获得这些名称。我知道在运行时可以使用http://software.clapper.org/classutil/