gpt4 book ai didi

java - 如何在方面调用 Hook 类的方法?

转载 作者:行者123 更新时间:2023-12-01 13:30:30 25 4
gpt4 key购买 nike

也许主题名称不好。我尝试解释清楚。

我有课:

public class A(){
Field1 field1;
Field2 field2;
public void method1(){...}
public void method2(){...}
public void sourceMethod(ParameterClass parameter1){
//some code
method1();
//some code
method2();
//some cdoe
}
}

我将 Hook 源方法:...

@Around(value = "execution(* A.sourceMethod(ParameterClass))")
public void aroundSourceMethod(JoinPoint joinPoint){
//I need to write my realization sourceMethod here
// I want to invoke method1 and method2 here
}

这里我想重写所有代码。但我需要调用 method1()method2()

是否可以使用 AspectJ ?

最佳答案

@Around(value = "execution(* A.sourceMethod(Parameter)) && target(target)")
public void aroundSourceMethod(JoinPoint joinPoint, Object target){
// I need to write my realization sourceMethod here
// I want to invoke method1 and method2 here
}

Target 将包含执行 sourceMethod 的对象。由于您只建议 A.sourceMethod(),因此您可以假设它是 A 类型,将其转换为 A 类型并根据需要调用其方法:

((A) target).method1()
...

虽然不太漂亮,但应该可以用。

关于java - 如何在方面调用 Hook 类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21598261/

25 4 0
文章推荐: java - 正确输入下一个 Activity 的文本
文章推荐: java - 多线程捆绑和服务实例
文章推荐: java - 自动将变量写入子类
文章推荐: java - 如何在 java 中将 list 转换为 list