读书人

依据字段调用所有set方法

发布时间: 2012-12-21 12:03:49 作者: rapoo

根据字段调用所有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();
??   }
}

读书人网 >编程

热点推荐