color4you 2009-02-02 21:55
浏览 200
已采纳

如果简便的获取子类的成员变量和其继承的超类的成员变量?

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

还有更简便的方法可以获取一个类自身和所有继承的字段吗?

  • 写回答

2条回答 默认 最新

  • wwwghost 2009-02-02 22:05
    关注

    [code="java"]Child.class.getSuperclass().getFields();[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?