bcel中的静态初始化程序

时间:2008-11-05 01:29:07

标签: bcel

在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

当然不一样。

1 个答案:

答案 0 :(得分:2)

我自己找到了。

    MethodGen method = new MethodGen(Constants.ACC_STATIC,
            Type.VOID,
            new Type[] { }, new String[] { }, "<clinit>",
            cg.getClassName(), il, cg.getConstantPool());

clinit似乎是班级初始化者......