0

我需要遍历抽象基类的子类中的公共属性。我以前对这类事情使用过反射,但现在我还需要检索超类中的字段。下面的方法只返回子类中的那些字段,而不是超类。一个人如何访问基类的成员?

private <T> void inspectClass(Class<T> cls){
    Field[] fields = cls.getDeclaredFields();
    Log.d("FIELDS ARRAY", cls.toString());
    for(Field f : fields){
        Log.d("FIELD NAME", f.toString());
    }
}

谢谢!

4

2 回答 2

1

有一个getFields方法将返回此类及其超类的所有公共字段。

如果你想要这个类及其超类的所有字段,只需使用getSuperClass () 并调用相同的方法。

正如@Sotirios 的评论所暗示的,您可以一直这样做。

Class<?> clazz = cls.getSuperclass();
    while (clazz != null) {
        // Print fields.
        clazz = clazz.getSuperclass();
    }
于 2013-05-13T15:50:46.917 回答
1

如果你想获得你应该使用的类的所有公共字段getFields。java文档说:

 Returns an array containing Field objects reflecting all the accessible public
 fields of the class or interface represented by this Class object.

此处查找.java.lang.Class

于 2013-05-13T15:53:12.243 回答