コンパイルされたクラスファイルの解析中にメソッド本体内のantherクラスへの呼び出しで置き換えたい...
または別の方法で記述すると、あるメソッド内のあるクラスのメソッドを置き換えて、そのメソッドの部分だけをjavaassistのようなものに置き換えます。例えばコンパイルされたJavaクラス内でのメソッド呼び出しの書き換え
Iは
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することになりますが、リフレクションを使って新しいコンパイル済みクラスファイルを生成するなど、より洗練されたソリューションを好むでしょう。
どのような考えですか?
免責事項:私はJavaコーダーではありません。 なぜ、問題の関数IEをオーバーライドしないのですか? クラスA2は、{public int m(){int i = 2; C.divide(i、i);私を返す; }} –
[AspectJ](http://www.eclipse.org/aspectj/)のようなAOPフレームワークは、あなたが望むことを実行できるはずです。 – gustafc