Javassist - 获取数组长度

时间:2015-05-31 11:20:51

标签: java arrays javassist

有人可以帮我找一些在javassist中查找数组长度的方法吗?我有一个内部有一个静态数组的类:

public class SomeClass {
    private static String arr[] = new String[]{"1", "2", "3"};
}

现在,在另一个类中,我正在加载SomeClass并尝试获取arr数组的长度。

ClassPool classPool = ClassPool.getDefault();
CtClass ctClass = classPool.get("SomeClass");

ctClass.getField("arr") //<---------- HOW TO GET LENGTH HERE?

谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码代表以下类:

public class SomeClass {
  private static String[] arr;

  static {
    arr = new String[] {"1", "2", "3"};
  }
}

为了读取数组的长度,您需要解析类初始化程序并解释其字节代码。 Javassist没有用于提取此信息的内置功能。<​​/ p>