注釈スタイルを使用してアスペクトをコーディングしようとしています。「回避」アドバイスを作成していますが、アドバイス メソッド内から thisEnclosingJoinPointStaticPart にアクセスする方法が見つからないようです。引数を定義しようとすると、ajc コンパイラからエラーが発生します。
これが私のポイントカットとアドバイスの宣言です。
@Pointcut("call(@xxx.api.annotation.InvokeOnEDT * gov.raptor..*.*(..))")
void invokeOnEDTPointCut()
{/*empty*/}
@Around("invokeOnEDTPointCut(thisEnclosingJoinPointStaticPart)")
public Object invokeOnEDT(final ProceedingJoinPoint thisJoinPoint, thisEnclosingJoinPointStaticPart) throws Throwable
{...}
これがコンパイルに失敗することはわかっています。「やりたい」ことを示すために提供していますが、実行する方法が見つかりません。Web の検索に何時間も費やしましたが、見つけることができる唯一の例は、Before または After のアドバイスであり、この構文を許可しているようです。周りのアドバイスは明らかに異なった振る舞いをしますが、私が見つけたものはそれについて議論していません.
コンパイル時に受け取るエラーは次のとおりです。
[ERROR] ...\aspects\DispatchEDTAspects.java:42:0::0 incompatible number of arguments to pointcut, expected 0 found 1
アドバイスメソッド内から thisEnclosingJoinPointStaticPart にアクセスする方法についてのアイデアはありますか?