Можно ли использовать Java Reflection для вывода атрибутов родительского класса?

можно ли использовать Java Reflection для распечатки атрибутов родительского класса.


person Oh Chin Boon    schedule 23.05.2011    source источник
comment
Вы можете перемещаться по иерархии классов, вы можете отражать атрибуты классов, так почему бы и нет?   -  person Jim Blackler    schedule 23.05.2011


Ответы (2)


Да, вы могли бы сделать что-то вроде этого:

Class<?> parentClass = getClass().getSuperclass();

Field[] fields = parentClass.getDeclaredFields();
for (Field field : fields) {
    System.out.println("field: " + field.getName());
}

Method[] methods = parentClass.getDeclaredMethods();
for (Method method : methods) {
    System.out.println("method: " + method.getName());
}
person WhiteFang34    schedule 23.05.2011

При соответствующей разрешающей политике безопасности можно распечатать атрибуты любого класса/экземпляра, используя отражение. См. Как ограничить setAccessible только законным использованием? для некоторых интересное обсуждение.

person Dilum Ranatunga    schedule 23.05.2011