例如:o.getClass().getDeclaredFields()
与o.getClass().getFields()
;
"声明的"是在当前源文件中声明的吗?
getDeclaredFields()
:
返回一个Field对象数组,该数组反映由该class对象表示的类或接口声明的所有字段。这包括公共、受保护、默认(包)访问和私有字段,但不包括继承的字段。返回的数组中的元素没有排序,也没有任何特定的顺序。如果类或接口未声明字段,或者此class对象表示基元类型、数组类或void,则此方法返回长度为0的数组。
getFields()
:
返回一个数组,该数组包含反映该class对象所表示的类或接口的所有可访问公共字段的Field对象。返回的数组中的元素没有排序,也没有任何特定的顺序。如果类或接口没有可访问的公共字段,或者表示数组类、基元类型或void,则此方法返回长度为0的数组。具体来说,如果这个Class对象表示一个类,那么这个方法将返回这个类及其所有超类的公共字段。如果该Class对象表示一个接口,则该方法返回该接口及其所有超接口的字段。