通过反射遍历实体类的属性并得到属性值集合

匿名 (未验证) 提交于 2019-12-03 00:22:01

封装成一个方法:

    // 通过反射遍历实体类的属性并得到属性值集合,去除业务无关主键值     public static List<String> getContentsList(Object model) throws Exception {         List<String> values = new ArrayList<String>();         // 获取实体类的所有属性,返回Field数组         Field[] field = model.getClass().getDeclaredFields();         // 遍历所有属性         for (int j = 0; j < field.length; j++) {             // 获取属性的名字             String name = field[j].getName();             // 过滤掉id/createDate/creater属性             if (!("id".equals(name))) {                 // 将属性的首字符大写,方便构造get,set方法                 name = name.substring(0, 1).toUpperCase() + name.substring(1);                 // 获取属性的类型                 String type = field[j].getGenericType().toString();                 // System.out.println("属性为:" + name);                 if (type.equals("class java.lang.String")) {                     Method m = model.getClass().getMethod("get" + name);                     // 调用getter方法获取属性值                     String value = (String) m.invoke(model);                     if (value != null) {                         // System.out.println("属性值为:" + value);                         values.add(value);                     } else {                         values.add("");                     }                 }                 if (type.equals("class java.util.Date")) {                     Method m = model.getClass().getMethod("get" + name);                     Date value = (Date) m.invoke(model);                     if (value != null) {                         // System.out.println("属性值为:" + value);                         String stringDate = DateUtil.ChangeTime2(value);                         values.add(stringDate);                     } else {                         values.add("");                     }                 }                 if (type.equals("class java.lang.Double")) {                     Method m = model.getClass().getMethod("get" + name);                     Double value = (Double) m.invoke(model);                     if (value != null) {                         // System.out.println("属性值为:" + value);                         String stringDouble = Double.toString(value);                         values.add(stringDouble);                     } else {                         values.add("");                     }                 }                 if (type.equals("class java.lang.Integer")) {                     Method m = model.getClass().getMethod("get" + name);                     Integer value = (Integer) m.invoke(model);                     if (value != null) {                         // System.out.println("属性值为:" + value);                         String stringInteger = Integer.toString(value);                         values.add(stringInteger);                     } else {                         values.add("");                     }                 }             }         }         return values;     }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!