1

Object.equals(Object ) を AspectJ でキャッチする方法はありますか? 私が試した:

@Pointcut("execution (* *(..))")

また

@Pointcut("call (* *(..))")

しかし、何も起こりません。

4

1 に答える 1

2

最初のものは、アドバイスを JRE/JDK クラスに織り込むことができる場合にのみ機能します。JDKウィービングは可能ですが(以前に行ったことがあります)、それは自明ではなく、この回答の範囲を超えています。あなたは AspectJ の初心者だと思います。

Object.equals2 つ目は、あなたが制御するコードから (つまり、あなたのアスペクトを織り込むコードから)への呼び出しが明示的に行われた場合に機能します。呼び出しが JDK クラスによって行われる場合は、オプション 1 の JDK ウィービングに戻ります。呼び出しが独自のコードで行われている場合は問題ありません。それらがサード パーティのライブラリによって作成されている場合でも、バイナリ ウィービングを使用して、サード パーティのクラス ファイルの新しいバージョンを作成し、それらの代替 JAR を作成できます。別の方法として、LTW (load-time weaving) を使用して、クラスのロード中にウィービングすることもできます。

于 2013-05-03T10:47:58.853 に答える