「アドオン」インターフェースを必要とするJavaプロジェクトがあります。initialize()
のようなデフォルトのメソッドを持つある種のクラスファイルをロードすることを考えshutdown()
ていました。これは、クラスがアプリケーションにロードされた後に呼び出されます。これはそれを行う方法ですか?この問題にどのようにアプローチしますか?
質問する
367 次
5 に答える
1
まず、ClassLoader
;が必要になります。を使用して現在のクラスを取得できますがgetClass().getClassLoader()
、アドオンクラスはクラスパスに含まれている必要があります。アドオンディレクトリを検索するカスタムクラスローダーを作成することをお勧めします。
を取得したらClassLoader
、それを使用してクラスをロードできます。これはあなたにClass
オブジェクトを与えます。次に、リフレクションを使用して、initialize()
メソッドが存在する場合はメソッドを呼び出すことができます。
于 2009-05-18T19:31:42.860 に答える
1
より洗練されたものを見る場合は、http://jpf.sourceforge.netを試すことができます。
... JPFは、「プラグイン」を動的に検出してロードするランタイムエンジンを提供します。プラグインは、「マニフェスト」を使用してJPFに自身を記述する構造化されたコンポーネントです。..。
于 2009-05-18T20:45:07.237 に答える
0
アドオンを実現するもう1つの優れた方法は、java.util.Serviceloaderです。javadocsを見てください、彼らは原理を説明しています。
于 2009-05-18T19:34:15.477 に答える
-1
public class SomeClass {
static {
System.out.println("Being called with the class is loaded");
initialize();
}
static void initialize(){}
}
それはあなたの質問ですか?
于 2009-05-18T19:28:32.523 に答える