学习一点工具类

来源:互联网 发布:metrics java 编辑:程序博客网 时间:2024/05/22 08:01
org.apache.cxf.common.util.StringUtils
 Field[] fields = o.getClass().getDeclaredFields();   for (Field field : fields) {   String md = "set"+StringUtils.capitalize(field.getName());   try {o.getClass().getMethod(md, field.getType());} catch (NoSuchMethodException | SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

数组与集合的区别:一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。二:一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。三:数组是一种可读/可写数据结构没有办法创建一个只读数组。然而可以使用集合提供的ReadOnly方   只读方式来使用集合。该方法将返回一个集合的只读版本。

在使用list 与arraylist的过程中发现对接口与实例的概念区分不清啊

在Java Web 开发中,我们经常会遇到,从后台获取前台的值,将获取的值通过set方法赋值给实体,然后将实体存入数据库中,有时候对于实体属性多时,代码量很大(其实都是那些set方法),所以针对这点,我们可以通过method反射机制,写个通用的底层方法(对任何实体都有效),这样一来,我们就不用再去一个一个set到实体中去。

public static  Object ObjectMethod(Object obj,HttpServletRequest request){   Field[] fields = obj.getClass().getDeclaredFields();   for(Field field:fields){    String md = "set"+StringUtils.capitalize(field.getName());    try {    Method method = obj.getClass().getDeclaredMethod(md, field.getType());    if("Java.lang.String".equals(field.getType().getName())){     String value = request.getParameter(field.getName());     method.invoke(obj, value);    }else if("java.lang.Integer".equals(field.getType().getName())){     if(!"".equals(request.getParameter(field.getName()))&&request.getParameter(field.getName())!=null){      Integer value = Integer.valueOf(request.getParameter(field.getName()));      method.invoke(obj, value);     }    }else{//这里判断当实体中某个属性为对象类型时,再一次去反射     Class c = Class.forName(field.getType().getName());//获取属性所对应的实体类     Object o =c.newInstance();                         //new一个实体类     Field[] fs = o.getClass().getDeclaredFields();     for(Field f : fs){      if(f.getName().endsWith("id")){//需要命名规范       String set = "set"+StringUtils.capitalize(f.getName());       Method m = o.getClass().getDeclaredMethod(set, f.getType());       if("java.lang.Integer".equals(f.getType().getName())){        Integer value = Integer.valueOf(request.getParameter(field.getName()));        m.invoke(o, value);        method.invoke(obj, o);       }else if("java.lang.String".equals(field.getType().getName())){        String value = request.getParameter(field.getName());        m.invoke(o, value);        method.invoke(obj, o);       }//今后添加基础类型      }     }    }   } catch (SecurityException e) {    e.printStackTrace();   } catch (NoSuchMethodException e) {    e.printStackTrace();   } catch (InvocationTargetException e) {    e.printStackTrace();   }catch (IllegalArgumentException e) {    e.printStackTrace();   } catch (IllegalAccessException e) {    e.printStackTrace();   } catch (ClassNotFoundException e) {    e.printStackTrace();   }catch (InstantiationException e) {    e.printStackTrace();   }   }   return obj;  }


0 0