2013-02-11 33 views
0

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

设置: 我得到了反映。提供方法并从中提取相应的PointcutExpressions。然后我想检查一下,如果一个特定的方法(reflect.Method)匹配那个调用。

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

pointcutExpressionParser.parsePointcutExpression(reflectPointcutExpression.asString()); 

但这并不能很好的工作,因为asString()方法只给出了应匹配的方法声明,而不是AspectJ的模式(呼叫,执行,设置等)..

有没有人一个好主意怎么做?

回答

1

我找到了问题的原因。

Advice.getPointcutExpression()输出实际的Pointcut作为字符串(如果它直接写入Advice)或在Aspect中声明的Pointcut的签名。 声明的切入点可以AJType.getDeclaredPointcuts()

+0

访问如果你解决接受的答案:) – dreamcrash 2013-02-11 23:24:37

+0

那不幸的是只可能在15小时问题... – Thorben 2013-02-12 19:14:24