如果方法匹配,将org.aspectj.lang.reflect.PointcutExpression转换为org.aspectj.weaver.tools.PointcutExpression进行检查的正确方法是什么?
环境: 我得到了reflect.Advice方法并从中提取出相应的PointcutExpressions。然后我想检查,如果特定方法(reflect.Method)匹配该调用。
我的第一个想法是使用这样的PointcutExpressionParser:
pointcutExpressionParser.parsePointcutExpression(reflectPointcutExpression.asString());
但这不能很好地工作,因为asString()方法只提供应该匹配的方法声明,而不是aspectj模式(调用,执行,设置等)。
有人知道怎么做吗?
答案 0 :(得分:1)
我找到了问题的原因。
Advice.getPointcutExpression()
输出真正的Pointcut作为String(如果它直接写入Advice)或Aspect中声明的Pointcut签名。
可以使用AJType.getDeclaredPointcuts()