是否可以使用Java反射打印出父类的属性。
是的,你可以这样做:
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());
}
给定适当的允许安全策略,就可以使用反射打印出任何类/实例的属性。参见How to limit setAccessible to only";合法的";使用?进行一些有趣的讨论。