gpt4 book ai didi

variables - 如何修改java字节码中局部变量的类型

转载 作者:行者123 更新时间:2023-12-02 22:55:45 25 4
gpt4 key购买 nike

我正在使用 Javassist 重写字节码。我需要修改一些局部变量的类型来对象。如何使用 Javassist 访问局部变量并更改其类型?

谢谢。

最佳答案

这个问题很老了,但由于我做了类似的事情,我将发布我的解决方案:

由于我没有找到任何解决方案来更改 Javassist 中类中字段的类型,因此我只是删除了旧方法并添加了一个具有相同名称但我想要的类型的新方法:

CtClass point = ClassPool.getDefault().get("Point");
CtField toBeDeleted = point .getField("fieldName");
point .removeField(toBeDeleted);
CtField newField = CtField.make("public int fieldName = 0;", point);
point.addField(newField );

因此,在这个示例中,我在类 point 中获取了 fieldName 字段,该字段的类型为 Object 并且知道已在类型为“int”的字段并初始化为 0

关于variables - 如何修改java字节码中局部变量的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10544483/

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