1

私は次の状況にあります:

私はクラスnumberOneUserであり、フレームワークは実行時にファイルシステムから.classファイルとして私をロードします。

私の.classファイルがあるディレクトリには、さらに多くの.classファイルがあることを知っています。(例:theOtherUser.class)

それらのいくつかは私と同じインターフェースを実装しています。(ユーザーと呼ばれる)

ここで、実行時に、そのインターフェイスを実装し、リフレクション(オーバーライドメソッドなど)で変更する2番目(またはそれ以上)のクラスを見つけたいと思います。

フレームワークへの唯一の参照は、フレームワークの一部である応答可能なオブジェクトへの参照が呼び出され、与えられていることを知っていることです。さらに、フレームワークが私の上のディレクトリにframework.jarファイルとして存在することを知っています。

追加情報はありません。

この他のクラスを見つける方法は?

4

2 に答える 2

4

リフレクションを見てくださいそれがあなたを助けるかもしれません。

Set<Class<? extends YourClassOrInterface>> subTypes = 
 reflections.getSubTypesOf(YourClassOrInterface.class);
于 2012-12-03T12:44:24.830 に答える
0

ディレクトリ内の .class ファイルを見つけて Class 要素のコレクションを作成する方法について説明しているこの回答を確認してください。クラスを取得したら、リフレクションまたは instanceof 演算子を使用して、インターフェイスを実装するクラスを決定できます。

于 2012-12-03T14:14:42.600 に答える