0

特定のインターフェースを実装するすべてのクラスを Java プログラムで (実行時に) リスト/列挙し、クラス名を取得したいと考えています。出来ますか ?どのようにできるのか ?

4

2 に答える 2

2

リフレクションを使用してそれを行う方法を詳しく説明するには:

から始めることができますThread.currentThread().getContextClassLoader()。パッケージ名をパスとして使用して、リソースを取得します。 Enumeration<URL> resources = classLoader.getResources(path);

次に、リソースからファイル名をデコードし、それらを反復処理する必要があります (一部はディレクトリである可能性があるため、再帰的に)。ファイルのリソースをフィルタリングし.class、クラスをインスタンス化し、Class.forName()それらが実装するインターフェースをチェックします。

于 2012-01-04T16:27:22.530 に答える
1

javaReflectionを使用する必要があります

このリンクは、Reflectionを使用して実行できるすべてのことをカバーするチュートリアルを提供します。そこからコードを作成できます

于 2012-01-04T16:14:34.877 に答える