我的A班有
AClaz[] rofl;
getDeclaredFields的文档说:“如果类或接口未声明任何字段,或者此Class对象表示原始类型,数组类或void,则此方法返回长度为0的数组。”
我想使用反射访问AClaz类型的rofl数组。即使AClaz是A类的内部类。
所以我会做getDeclaredClass吗?
最佳答案
您误读了文档-谈论的是在数组类上调用getDeclaredFields
,如下所示:
Class<?> arrayClass = String[].getClass();
Field[] fields = arrayClass.getDeclaredFields();
您应该可以使用
A
毫无问题地使用该字段Field[] fields = A.class.getDeclaredFields();
然后遍历数组,或者
Field roflField = A.class.getDeclaredField("rofl");
字段类型是数组这一事实根本不是问题。