0

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

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

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

pointcutExpressionParser.parsePointcutExpression(reflectPointcutExpression.asString());

但这并不能很好地工作,因为 asString() 方法只给出了应该匹配的方法声明,而不是 aspectj 模式(调用、执行、设置等)。

有谁知道怎么做?

4

1 回答 1

1

我找到了问题的原因。

Advice.getPointcutExpression()将真正的切入点输出为字符串(如果它直接写入 Advice)或在 Aspect 中声明的切入点的签名。声明的切入点可以通过AJType.getDeclaredPointcuts()

于 2013-02-11T16:48:46.177 回答