class Test {
public static void main(String[] args) throws Exception {
Test t = new Test();
System.out.println(t.field);
System.out.println(t.getClass().getField("field").get(t));
int[] ar = new int[23];
System.out.println(ar.length);
System.out.println(ar.getClass().getField("length").get(ar));
}
public int field = 10;
};
当我运行上面的代码时,我在命令行上得到以下结果 --
10
10
23
Exception in thread "main" java.lang.NoSuchFieldException: length
at java.lang.Class.getField(Class.java:1520)
at Test.main(Test.java:9)
为什么我无法访问数组中的“length”字段?
最佳答案
有一个特殊的java.lang.reflect.Array
类(class)。 length
不是普通字段。要访问它,有一个特殊的方法 getLength
。
关于java - 使用反射获取Java数组中的字段 "length",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11097658/