开发者

Aspect oriented question - Pointcut

i'm wondering what the following means in a pointcut

after(FigureElement 开发者_JS百科fe, int x, int y) returning:
        call(void FigureElement.setXY(int, int))
        && target(fe)
        && args(x, y) {
    System.out.println(fe + " moved to (" + x + ", " + y + ")");
}

what does target and args mean here? i've no idea.

Many thanks


Let's look to the AspectJ guide.

target(Type or Id) every join point when the target executing object is an instance of Type or Id's type

args(Type or Id, ...) every join point when the arguments are instances of Types or the types of the Ids

In your example, for pointcut to match, the method must be called on FigureElement instances and have two int arguments. Names given as target and args parameters means that those parameters are accessible inside your advice body.

So, your pointcut matches all calls to FigureElement.setXY method with two int arguments and gives you access to the matched instance as fe and method arguments as x and y.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜