2

ここで、いくつかの特別なクラスの初期化をリッスンします。これらのクラスの初期化時に、いくつかのアクションを実行します。

現状 インターフェースやアノテーションを使いたいのですが、どう実装すればいいですか?

4

2 に答える 2

1

私たちはこの問題を解決しました。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 オブジェクトは動作を変更する必要はありません。

于 2013-05-24T04:51:12.920 に答える