问题描述
||
例如:
o.getClass().getDeclaredFields()
vs.o.getClass().getFields()
;
是否在当前源文件中声明了“已声明”?
解决方法
getDeclaredFields()
:
返回一个Field对象数组,该数组反映由该Class对象表示的类或接口声明的所有字段。这包括公共,受保护,默认(程序包)访问和私有字段,但不包括继承的字段。返回的数组中的元素未排序,并且没有任何特定顺序。如果类或接口未声明任何字段,或者此Class对象表示原始类型,数组类或void,则此方法返回长度为0的数组。
getFields()
:
返回一个包含Field对象的数组,该对象反映此Class对象表示的类或接口的所有可访问公共字段。返回的数组中的元素未排序,并且没有任何特定顺序。如果类或接口没有可访问的公共字段,或者表示数组类,原始类型或void,则此方法返回长度为0的数组。
具体来说,如果此Class对象表示一个类,则此方法返回该类及其所有超类的公共字段。如果此Class对象表示一个接口,则此方法返回此接口及其所有超级接口的字段。