例えば、java.lang.Object
への参照をすべてsome.packageName.SomeClass
に変更したい、コンパイルされたクラス(ソースコードは使用できません)を変更しようとしています。参照することによりコンパイルされたクラス内のすべてのクラス参照を変更する
私は意味:
- フィールドタイプ
- 方法は種類
- メソッドの引数の型
- スーパータイプを返すメソッド本体内
- 変数の型
- 静的クラス参照(例えば
java.lang.Object.class
を) - 遺伝子RIC型パラメータ
- 等
基本的に、この実施例により、修飾されたクラスは、だけsome.packageName.SomeClass
を通して、直接java.lang.Object
クラスにアクセスできるようにshould't。サンプルクラスは、jreからの任意のクラスでも、そうでなくてもかまいません。提供された代用品は、元のとおりに動作します。
BCELまたはJavassistを使用すると可能ですか?そうでない場合は、この目標を達成するための機能を提供する他のライブラリがありますか?
コンパイルされたクラス? –
@Vishal Kamat、あなたがなぜそう思うか分からなければ、あなたがする必要がないということです。場合によっては、余分なメソッドを追加したり、ソースコードを持たないクラスにインターフェイスを実装したりするなどの場合に役立ちます。私の場合は単なるサンドボックステストです。 –
その場合、AOPはあなたの友人です。あなたが言及したことをするためのものがたくさんあります –