0
私はByte Buddyを勉強しています。私はそれによってCGLibを置き換えようとしています。私は、フィールドへの書き込みを傍受するための実装方法があるかどうかを知りたい。私はフィールドの型がわからないので、割り当てられた値を変更したくありません。私はどんなアクセスでもfield written!
を記録したいだけです。フィールドライタインターセプタ
例:私はこのクラスを持っている場合:
public class Ex {
public int i;
public String s;
public boolean b;
}
後、私はこれを行うとき:
Ex e = new Ex();
e.i=1;
System.out.println("Value of i:" + i);
e.s="hello";
System.out.println("Value of s:" + hello);
それがなければならない出力:ヘルプページで
field written!
Value of i: 1
field writed!
Value of s: hello
カスタムの下でInstrumentation、例がありますが、明確ではありません。
いいえ、CGLibで実装できませんでした。今日私はASMを読んでいましたが、今私が望むものは不可能であることを理解しています。 明日は私のライブラリをBBで書き直そうとして、何が起こるか見てみましょう。 –