/** * List<Map<String, Object>> 到 List<T> 数据转换 */ public static <T> List<T> setList(final List<Map<String, Object>> srcList, Class<T> clazz) { List<T> list = new ArrayList<>(); for (int i=0;i<srcList.size();i++){ try { T t = clazz.newInstance(); Field[] fields = t.getClass().getDeclaredFields(); for (Field field : fields) { if (!"serialVersionUID".equals(field.getName())) { //设置对象的访问权限,保证对private的属性的访问 field.setAccessible(true); //读取配置转换字段名,并从map中取出数据 Object v = srcList.get(i).get(field.getName()); field.set(t, convert(v, field.getType())); } } list.add(t); } catch (Exception ex) { ex.toString(); } }; return list; } /** * 字段类型转换 */ private static <T> T convert(Object obj, Class<T> type) { if (obj != null && StringUtil.isNotBlank(obj.toString())) { if (type.equals(String.class)) { return (T) obj.toString(); } else if (type.equals(BigDecimal.class)) { return (T) new BigDecimal(obj.toString()); } //其他类型转换 } return null; }
Java List<Map<String, Object>> 到 List<T> 数据转换
最新推荐文章于 2024-04-15 15:36:19 发布