0

假设我有一个 A 类:

class A
{
   private String value;
   private B field;
   public C otherField;
}

class C
{
   private String otherValue;
}

class B
{
   private String name;
}

现在,如果我执行 A.class.getClasses(),我将得到一个包含一个元素的数组(这个是公共的,根据 Class.java 的 javadoc 所说,这是有意义的)。

我的问题是:有没有办法返回一个类的公共+私有字段列表?

谢谢

4

2 回答 2

1

getClasses()方法不是访问属于类的字段A的正确方法。您需要使用该方法来访问表示类中字段getDeclaredFields()的对象数组。Field从那里,您需要通过true调用 将字段的可访问性设置为setAccessible()通过查看Java Reflection API以及此处可以获得更多信息

于 2013-09-08T21:52:46.957 回答
0

您应该注意到,getDeclaredField 只会返回在类中声明的类的字段。从超类继承的字段将不会被返回。要获取类的所有字段,您必须遍历超类(使用 Class.getSuperclass())。

于 2013-09-08T22:02:59.537 回答