根据字段调用所有set方法
?public void reflect7(){
? ?try {
??? Class cls = Class.forName("entity.UserBean");//加载UserBean类到内存中!获取一个Class对象
??? Object obj = cls.newInstance();//通过class类反射一个对象实体
?? ? Field[] fields = cls.getDeclaredFields();
??? UserBean bean = (UserBean)obj;
??? for (Field field : fields) {
??? String fieldName =? field.getName();//取出字段名称
???? //假如字段是name 方法必然是setName? 规则:加set,首字母大写!
??? ?? Method method = cls.getDeclaredMethod("set" + fieldName.substring(0,1).toUpperCase()+ fieldName.substring(1));
???? if(field.getType().toString().equals("int")){
???? ?? method.invoke(obj, new Object[]{Integer.parseInt("20")});
??? ??? }else{
???? ??? method.invoke(obj, new Object[]{"ABC"});
??? ? }
???? ?? System.out.println(bean.getName() +"? "+bean.getAge()+"? "+bean.getAddress());
??? }
? ?} catch (Exception e) {
??? // TODO Auto-generated catch block
??? e.printStackTrace();
?? }
}