gpt4 book ai didi

Java 字节码检测到由 ASPECTJ 识别的方法

转载 作者:行者123 更新时间:2023-11-30 10:53:35 24 4
gpt4 key购买 nike

我有一个遗留的 Java 代码,我目前无法修改/无权访问它的源代码。我们发现所有具有称为@SomeAnnotation 的运行时注释的方法都存在问题,我们想修复这些方法中的某些内容。

@SomeAnnotation
void someMethod(...) {
...

}

我知道我可以使用 AOP (aspectJ) 来捕获所有带有这些注释的函数并在之前/之后添加操作,以及用其他东西替换执行代码......但我想做的是在这个函数中添加一些东西并保留其余代码(扫描字节码并在中间修改函数......)

这有可能吗?如果是 - 如何?

谢谢

最佳答案

你可以试试javassist - 它是Java中用于编辑字节码的类库;它使 Java 程序能够在运行时定义一个新类,并在 JVM 加载类文件时修改它。

或者 HotSwap - 它允许更改方法主体,添加/重命名方法/字段

您还可能会发现 this link有用。

(取决于你需要做什么(在开头添加一些代码,完成函数的其余部分,在最后添加一些代码,而不是在中间修改函数),你也许可以使用环绕建议,带有 ProceedingJoinPoint 调用 作为参数,您可以执行您的代码,然后调用 invocation.proceed() 将调用委托(delegate)给原始目标。)

关于Java 字节码检测到由 ASPECTJ 识别的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937255/

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