我正在使用 aspectj 来分析我的程序。目前我的方面看起来像:
@Aspect
public class InvokeAspect {
@Before("anyCall(t, s)")
public void processInvocation(JoinPoint point, JoinPoint.EnclosingStaticPart enclosingStatic, Object t, Object s){
System.out.println("***");
System.out.println("Invoker: " + s.toString());
System.out.println("Invoker: " + enclosingStatic.getSignature().toLongString());
System.out.println("Invoked object: " + t.toString());
System.out.println("Invoked: " + point.getSignature().toLongString());
System.out.println("");
System.out.println("***");
}
@Pointcut("call(* *(..)) && !within(cz.cvut.kbss.odra..*) && target(t) && this(s)")
public void anyCall(Object t, Object s){}
}
一切都按预期工作,但是有没有办法说服 aspectj 使用方面,即使this或source不存在?(静态方法调用或从静态方法调用)。还是我必须写3个方面?
谢谢。