コンパイルされたクラスファイルを解析しながら、特定のクラスへの呼び出しをメソッド本体内の別のクラスへの呼び出しに置き換えたい...
または言い換えると、メソッド内の特定のクラスの使用を検出し、その部分だけを置き換える方法はありますか? javaassistのようなものを使用するメソッドの。
たとえば..私がコンパイルされたバージョンを持っていた場合
class A { public int m() { int i = 2; B.multiply(i,i); return i; } }
Bの使用を検出し、実行するコードを変更する方法はありますか
class A { public int m() { int i = 2; C.divide(i,i); return i; } }
別の方法として、使用するソースファイルをgrepするパーサーを作成することもできますが、リフレクションを使用して新しいコンパイル済みクラスファイルを生成するなど、より洗練されたソリューションをお勧めします。
何かご意見は ?