【发布时间】:2012-01-02 18:43:59
【问题描述】:
我正在使用 AspectJ 来捕获方法调用。然后我需要获取方法名称和传递的参数值。 让我们举个例子:
Line2D line = new Line2D.Double(lineStart, lineEnd);
and graphics.draw(line);
我需要捕获对Graphics2D.draw(Shape) 的所有调用。我有一个这样做的切入点:
pointcut captureCallParameters(Shape name) : call(* *(Shape)) && args(name);
问题是当我尝试获取参数的值时(此方法中的形状)。我得到这个参数:java.awt.geom.Line2D$Double@596e1fb1
我想得到在这种情况下是一条线的形状的点。
另一方面,我也有一个切入点,与上面提到的新行的构造相匹配,我能够获得该行的参数。但我不知道如何将 Draw 方法与该行构造函数联系起来。我可以为Lines 提供多个构造函数,但我不知道使用Draw(line) 方法绘制的Lines 中的哪一个。
【问题讨论】:
标签: methods parameters aspectj