假设我定义了这种形式的切入点
* *.*(..)
我想定义一个周围的建议,我怎么能用任意数量的参数调用继续?
我考虑过使用反射和 thisJoinPoint.getArgs() 但在尝试之前,我想知道是否有一种干净简单的方法。
假设我定义了这种形式的切入点
* *.*(..)
我想定义一个周围的建议,我怎么能用任意数量的参数调用继续?
我考虑过使用反射和 thisJoinPoint.getArgs() 但在尝试之前,我想知道是否有一种干净简单的方法。
这是一个常见的误解,即proceed
采用与匹配模式的方法相同的参数。但是,接受建议规定proceed
的论点。
例子:
class C {
public void foo(int i, int j, char c) {
System.out.println("T.foo() " + i*j + " " + c);
}
}
class Context {
public int bar = 7;
public void doStuff() {
C c = new C();
c.foo(2, 3, 'x');
}
}
有一个方面:
public aspect MyAspect {
pointcut AnyCall() :
call(* *.*(..)) && !within(MyAspect);
void around(Context c) : AnyCall() && this(c) {
if (c.bar > 5)
proceed(c); // based on "around(Context c)"
}
}