gpt4 book ai didi

java - 仅将方法参数的子集传递给通知

转载 作者:行者123 更新时间:2023-11-30 04:17:25 24 4
gpt4 key购买 nike

public class MyClass {

public void myMethod(String a, String b, String c, String d, String e, String f) {
return true;
}

}

public aspect MyAspect {

pointcut myPointcut(String a, String b, String c, String d, String e, String f):
execution (public void myMethod(String, String, String, String, String, String)) &&
target(MyClass) &&
args(a, b, c, d, e, f);

after(String a, String b, String c, String d, String e, String f) : myPointcut(a, b, c, d, e, f) {
// I only need parameter "b"
}

}

我有什么方法可以只将arg String b传递给我的建议,因为我在这里不需要其他的?

我尝试了以下方法:

pointcut myPointcut(String b):
execution (public void myMethod(String, String, String, String, String, String)) &&
target(MyClass) &&
args(b);

after(String b) : myPointcut(b) {
// I only need parameter "b"
}

但我收到以下警告:

advice defined in MyAspect has not been applied [Xlint:adviceDidNotMatch]

最佳答案

不改变方法签名我就看不到。参数名称在运行时丢失,因此您的建议和触发它的方法签名之间不会有任何关联。换句话说,它不知道要传递什么字符串。

为了澄清,以下内容被编译为与上面的代码相同的内容。我们不知道 6 个字符串中的哪一个是您需要的:

pointcut myPointcut(String someString):
execution (public void myMethod(String, String, String, String, String, String)) &&
target(MyClass) &&
args(someString);

after(String someString) : myPointcut(someString) {

}

关于java - 仅将方法参数的子集传递给通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016686/

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