4

コンパイル時にパッケージ内のすべてのクラスをリストしようとしています。

次の構造を持つプロジェクトを定義しましょう。

com.main
   Main.scala
com.package
   Method.scala
com.package.method1
   Method1.scala
com.package.method2
    Method2.scala

どこ:

Method.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/を使用できることを知っています

4

0 に答える 0