gpt4 book ai didi

java - 将方法中的一个字段替换为另一个字段

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:08 26 4
gpt4 key购买 nike

我正在尝试用另一个字段引用动态替换方法主体中的字段引用。 bytebuddy 可以做到这一点吗?

我喜欢改造的类是这样的:

public class TestReplace {
@replace
int a = 1;
int b = 2;

public int printA() {
return a;
}

public int printB() {
return b;
}
}

转换包括在访问它们的方法中替换用@replace标记的变量。替换将通过我将插入的变量来完成。

已经转换的类应该如下所示:

public class TestReplace {
@replace
int a = 1;
int ___a = a * 10; // var inserted
int b = 2;

public int printA() {
return ___a;
}

public int printB() {
return b;
}
}

我是这个主题的新手,非常感谢您能给我的任何帮助。

提前致谢

最佳答案

是的,这可以使用MemberSubstitution实现:

MemberSubstitution.relaxed()
.field(ElementMatchers.named("a"))
.onRead()
.doReplaceWith(otherField)

例如,您可以从使用 AgentBuilder API 定义的 Java 代理应用此转换。您可能还需要从此代理定义替代字段。您可以使用 FieldDescription.Latent 引用此字段。

关于java - 将方法中的一个字段替换为另一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165318/

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