特定のクラスをシステムに登録する必要があるレジストリクラスがある場合があります。私はAPIを書いているので、ランタイムの前にこれらのクラスがあるかどうかを必ずしも知ることができないので、私の解決策は各クラス内の静的ブロックを使用して自身を登録しています。実行時にクラスを強制的にロードする方法はありますか?
問題は、各クラスが初期化されるまで静的なブロックが実行されていないのは勿論である、そして個々のクラスへの明示的な言及がないので、彼らは決して初期化されていません。 Catch-22。
したがって、クラスを明示的に参照せずに起動時に初期化されるようにする方法や注釈はありますか?
クラスを初期化するために 'Class.forName(" com.example.MyClass ")'を呼び出すことはできますか?パラメータとして 'initialize'フラグをとる別の' Class.forName'メソッドもあります –
私が言ったように、私のコードはあらかじめクラスを認識していません。私はそれを明示的に呼び出すことができますが、問題はありません=) – mikek
クラス名を表示するために、Javaプロパティまたは設定ファイルを使用して、自分で読み込むことができますか? *は、特定のJava Virtual Machine(JVM)*のアプリケーションで一度インスタンス化されることが保証されている新しい種類のセッションBeanである '@ Singleton'ビーンアノテーションを使用できますか? –