说明
getDeclaredFields()
:获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
getFields()
:获得某个类的所有的公共(public)的字段,包括父类中的字段。
使用
随便抓一只猫
public class Cat {
public String address; // 公共
private String name; // 私有
private String kind;
private String age;
// get set省略
}
测试下
public class getDeclaredFields方法 {
@Test
public void fun1 () {
Class catClass = Cat.class;
Field[] DeclaredFields = catClass.getDeclaredFields();
for (Field elem : DeclaredFields) {
System.out.println("getDeclaredFields()字段名字" + elem.getName());
}
Field[] fields2 = catClass.getFields();
for (Field elem : fields2) {
System.out.println("getFields()字段名字" + elem.getName());
}
}
}
结果
getDeclaredFields()字段名字address
getDeclaredFields()字段名字name
getDeclaredFields()字段名字kind
getDeclaredFields()字段名字age
getFields()字段名字address