[code="java"]
public class Father{
protected int size;
private int capacity;
}
[/code]
[code="java"]
public class Child extends Father{
private int index;
}
[/code]
简要的说:我希望能通过java的反射机制来获取Child的有效字段,包括继承自Father的size,和其自身的成员变量index。
想了很久没有找到什么快捷的方法,很容易就能获得Child自身的成员变量,但不知道怎么获取其继承自父类的成员变量。
希望大家帮助,谢谢!
[b]问题补充:[/b]
我也清楚这样可以获得超类的成员变量
但是如果Father还有超类呢?是否只有通过递归去获取所有继承的字段?
看起来就像这样:
[code="java"]
public void getField(Class cls){
if(!cls.getSuperClass().equals(Object.class)){
Field[] fields = cls.getFields();
getField(cls.getSuperClass());
}
}
[/code]
还有更简便的方法可以获取一个类自身和所有继承的字段吗?