ここで、いくつかの特別なクラスの初期化をリッスンします。これらのクラスの初期化時に、いくつかのアクションを実行します。
現状 インターフェースやアノテーションを使いたいのですが、どう実装すればいいですか?
ここで、いくつかの特別なクラスの初期化をリッスンします。これらのクラスの初期化時に、いくつかのアクションを実行します。
現状 インターフェースやアノテーションを使いたいのですが、どう実装すればいいですか?
私たちはこの問題を解決しました。javassist を使用します。コードは次のようになります。
Configuration conf = (Configuration) entry.getValue();
String clazz = conf.getClazz();
try {
CtClass ctClass = ClassPool.getDefault().get(clazz);
String appendCode = "{com.broada.bsp.gene.config.management.ConfigurationManager.manager.inject(this);\n}";
CtConstructor constructor[] = ctClass.getDeclaredConstructors();
for (CtConstructor ctConstructor : constructor) {
ctConstructor.insertAfter(appendCode);
}
ctClass.toClass();
Himanshu Bhardwaj さん、ご回答ありがとうございます。
ここでは、ソリューションを使用できません。ユーザーの新しい Java オブジェクト アクションを変更することはできず、javassist を使用します。コンストラクターの後にコードを追加するだけなので、ユーザーの Java オブジェクトは動作を変更する必要はありません。