[英]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.