在BCEL中,我想初始化类的静态初始化器中的静态字段。我还没有办法这样做但是......任何提示?
我需要类似的东西:
// Field descriptor #8 [I
private static int[] a;
static {};
0 bipush 10
2 multianewarray int[] [9]
6 putstatic Output.a : int[] [11]
9 return
但我似乎只能生成(MethodGen
)类似的事情:
public static void {}();
0 bipush 10
2 multianewarray int[] [9]
6 putstatic Output.a : int[] [11]
9 return
当然不一样。
答案 0 :(得分:2)
我自己找到了。
MethodGen method = new MethodGen(Constants.ACC_STATIC,
Type.VOID,
new Type[] { }, new String[] { }, "<clinit>",
cg.getClassName(), il, cg.getConstantPool());
clinit似乎是班级初始化者......