面向方面的问题——切入点

发布于 2024-10-11 14:20:30 字数 327 浏览 3 评论 0原文

我想知道切入点中以下内容意味着什么

after(FigureElement 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 + ")");
}

target 和 args 在这里意味着什么?我不知道。

非常感谢

i'm wondering what the following means in a pointcut

after(FigureElement 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅唱々樱花落 2024-10-18 14:20:30

让我们看看AspectJ 指南

目标(Type 或 Id) 当目标执行对象是 Type 或 Id 类型的实例时的每个连接点

args(Type or Id, ...) 当参数是 Types 实例或 Ids 类型时的每个连接点

在您的示例中,为了匹配切入点,必须在 FigureElement 实例上调用该方法,并具有两个 int 参数。作为 targetargs 参数给出的名称意味着这些参数可以在您的建议正文中访问。

因此,您的切入点将使用两个 int 参数匹配对 FigureElement.setXY 方法的所有调用,并让您能够以 fe 和方法参数的形式访问匹配的实例作为xy

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文