現在、ASM を使用してターゲット アプリケーションのフィールド値を変更しようとするすべての試みをインターセプトしていますが、これは期待どおりに機能しています。ASM を使用すると、メソッドまたはコンストラクタ コード セグメントの先頭または末尾に命令を追加できるからです。
ただし、たとえば、メソッドまたはコンストラクターのスコープ外のフィールドを初期化するのは、かなり一般的な開発者パラダイムであることがわかりました。
public class Example{
//--VARIABLE INITIALIZATION OUTSIDE METHOD OR CONSTRUCTOR SCOPE ---
private String aString = "A String Value";
//zero argument constructor
public Example(){
}
//all other methods.
}
私の質問は、この方法で行われたフィールドアクセスをインターセプトするタスク、つまりメソッドまたはコンストラクターのコンテキストの外でどのようにアプローチするのでしょうか?