如果方法匹配,将org.aspectj.lang.reflect.PointcutExpression转换为org.aspectj.weaver.tools.PointcutExpression进行检查的正确方法是什么?

设置:
我得到了reflect.Advice方法,并从其中提取了相应的PointcutExpressions。然后,我想检查特定的方法(reflect.Method)是否与该调用匹配。

我的第一个想法是像这样使用PointcutExpressionParser:

pointcutExpressionParser.parsePointcutExpression(reflectPointcutExpression.asString());


但这不能很好地工作,因为asString()方法仅给出应该匹配的方法声明,而没有提供Aspectj模式(调用,执行,设置等)。

有谁知道怎么做吗?

最佳答案

我找到了问题的原因。

Advice.getPointcutExpression()将实际的切入点输出为String(如果直接将其写入到Advice中)或在Aspect中声明的切入点的签名。
声明的切入点可以使用AJType.getDeclaredPointcuts()访问

关于java - 2种PointcutExpression,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14810990/

10-13 03:25