gpt4 book ai didi

java - 构造函数调用不同类的 AspectJ 切入点 - 识别创建的对象类型

转载 作者:行者123 更新时间:2023-11-29 07:57:48 33 4
gpt4 key购买 nike

我正在使用 AspectJ,我已经定义了一个切入点来捕获几个类的构造函数方法的执行,如下所示:

pointcut newobject(): execution(class1.new(..) || class2.new(..) || class3.new(..));

那我有

after()returning():newobject(){ 

在这里我想根据刚创建的对象是 class1、class2 还是 class3 做不同的事情如果有一种方法可以在此时引用对象的类型而不必拆分切入点?

最佳答案

您的切入点语法错误。您不能在一个 execution 切入点中链接多个方法或构造函数模式。相反,您需要链接多个 execution 切入点,或者如果可能的话,使用像 MyClass* 这样的 clown 来捕获多个切入点。一个小例子:

pointcut newobject(Object createdObject) :
(execution(class1.new(..)) || execution(class2.new(..)) || execution(class3.new(..)))
&& this(createdObject);

after(Object createdObject) : newobject(createdObject) {
System.out.println(thisJoinPoint);
System.out.println(createdObject);
System.out.println(createdObject.getClass());
}

this 绑定(bind)到变量名后,您可以用它做任何您喜欢的事情。

关于java - 构造函数调用不同类的 AspectJ 切入点 - 识别创建的对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383922/

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