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