gpt4 book ai didi

java - 如何使用 BCEL 更改静态字段的值?

转载 作者:行者123 更新时间:2023-12-01 14:06:15 26 4
gpt4 key购买 nike

例如,我想使用 BCEL 重置静态字段

private static final int myValue = 1;

myValue = 2。使用其他字节码库(例如 ASM)是不可能的。

最佳答案

我的问题中的代码:Injecting code in an existing method using BCEL用于编辑静态数组。但后来我将其更改为编辑局部变量。编辑静态变量的代码如下所示:

InstructionList il = new InstructionList();
InstructionFactory f = new InstructionFactory(constantPoolGen);
il.append(f.createGetStatic("MyClassName","MyVariableName",Type.INT));
il.append(new PUSH(contantPoolGen, 2));
il.append(new ISTORE());

我使用的指令列表被注入(inject)到一个方法中,所以我不确定这是否适合你..

关于java - 如何使用 BCEL 更改静态字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18879277/

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