public void reflect2(){
try {
User user=new User();
Field[]fields = user.getDeclaredFields();//通过class取出当前class中的所有字段
for (Field field : fields) {
System.out.println(field.getName()+" "+field.getType());
}
} catch (Exception e) {
e.printStackTrace();
}
}
* getFields()与getDeclaredFields()区别:
getFields()只能访问类中声明为公有的字段,私有的字段它无法访问.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关
* getMethods()与getDeclaredMethods()区别:
getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
* getConstructors()与getDeclaredConstructors()区别:getConstructors()只能访问类中声明为public的构造函数.getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关