2011-06-21 10 views
2

実行時にクラスを拡張する必要があります。特にクラス状態の変更を検出する必要があります。可能であれば、フィールドの代入を傍受して変更を検出できるようにしたいと思います。どのライブラリを使うべきですか?その理由は何ですか? javassistまたはcglibまたは?これはjava.lang.reflect.Proxyで可能ですか?これらのライブラリを比較できますか?おかげさまで 実行時にクラスを生成するために選択するライブラリ

答えて

2

インターフェイスで定義されたセッターを代行受信するには、プロキシを使用できます。

メソッド呼び出しをインターセプトするには、AspectJのようなAOPを使用できます。

しかし、フィールドの割り当てをトラップするには、ASM、BCEL、cglib、javassistなどのバイトコードライブラリを使用します。私はASMが好きで、速くてバイトコードを書くのを簡単にするツールがあります。

+3

また、AsspectJでフィールド割り当てを代行受信することもできます。 '{AspectJクイックリファレンス} '(http://www.eclipse.org/aspectj/doc/next/quick5.pdf) ) – Atreys

関連する問題