我正在 AspectJ 中搜索特定的切入点

I am searching for a specific pointcut in AspectJ

行:

test.address.postal_code = "12345";

将导致如下流程:

before-get test.address
    return test.address
after-get test.address
before-set test.address.postal_code
    set postal_code
after-set test.address.postal_code

在 AspectJ 中。 是否有将测试作为目标的切入点(如 before-get test.adddres 和 after-get test.address)但会在 "after-set test.address.postal_code" 之后发生?

不,因为你的代码行等同于:

Object address = test.address;
address.postal_code = "12345";

即两个字段访问(先读取,然后写入)依次进行。以 "fluent" 方式链接它们只是语法糖。顺便说一句,如果你的 Test class 可以直接访问 Address 成员,无论如何你有封装问题,但这只是个人评论。

如果您想知道该地址是否已分配给另一个 class 的成员,您需要在方面内保持状态,这是可能的,但有点脏。也许您想更改应用程序设计,而不是用 hacky 方面修补糟糕的设计。 ;-)