繁体   English   中英

访问Java类上的私有类

[英]Accessing to private classes on Java class

假设我有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的说法是有意义的)。

我的问题是:有没有一种方法可以返回类的公共和私有字段列表?

谢谢

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM