gpt4 book ai didi

java - This() 与 Target() 方面

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:24 25 4
gpt4 key购买 nike

谁能解释一下 this()target() 切入点在 aspectj 中的区别。我试着在别处找到这个,但似乎没有明确的答案。谢谢你

最佳答案

在匹配的连接点,this()是你所在的对象,target()是您正在调用/引用的对象。可能会出现混淆,因为在 execution() 的情况下连接点上的切入点匹配它们是同一件事——包含匹配的执行连接点的对象与运行你正在匹配的方法的对象相同。但在 call() 的情况下它们的连接点不同。进行调用的对象与调用该方法的对象不同。

class A {
public void m() {
B b = new B();
b.n();
}
}
class B {
public void n() {
}
}

对于该设置,切入点 execution(* m(..))将匹配连接点 A.m()并且有一个this() A 型和 target()类型 A(它们将是 A 的同一个实例)。但是切入点call(* n(..))将在方法 A.m() 中的调用站点匹配它在哪里调用 n()那时this()将是 A 的实例,同时 target()将是调用该方法的 B 的实例。

关于java - This() 与 Target() 方面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com