美文网首页
java使用流特性将List<Map>转成List<Bean>

java使用流特性将List<Map>转成List<Bean>

作者: 楼兰King | 来源:发表于2021-04-27 09:57 被阅读0次

    转换流程如下:
    一、需要一个MapToObject工具类

    import java.lang.reflect.Field;
    import java.lang.reflect.Modifier;
    import java.util.Date;
    import java.util.Map;
    
    /**
     * @author: Combo
     * @time: 2020/5/22 18:40
     * @description: 转换类
     */
    public class MapToObject {
        public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) {
            if (map == null) {
                return null;
            }
            T obj = null;
            try {
                obj = clazz.newInstance();
    
                Field[] fields = obj.getClass().getDeclaredFields();
                for (Field field : fields) {
                    int mod = field.getModifiers();
                    if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                        continue;
                    }
                    field.setAccessible(true);
                    String filedTypeName = field.getType().getName();
                    if (filedTypeName.equalsIgnoreCase("java.util.date")) {
                        String datetimestamp = String.valueOf(map.get(field.getName()));
                        if (datetimestamp.equalsIgnoreCase("null")) {
                            field.set(obj, null);
                        } else {
                            field.set(obj, new Date(Long.parseLong(datetimestamp)));
                        }
                    } else {
                        field.set(obj, map.get(field.getName()));
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return obj;
        }
    }
    

    二、使用流特性将List<Map>转成List<Bean>

    // 实体类
    User user = new User();
    // 得到的list<map>的值
    List<Map> mapList = new ArrayList<>(); 
    // 利用流 将List<map> 转成 List<实体类>
    List<User> userList = mapList.stream().map(item -> MapToObject.map2Object(item, User.class)).collect(Collectors.toList());
    

    相关文章

      网友评论

          本文标题:java使用流特性将List<Map>转成List<Bean>

          本文链接:https://www.haomeiwen.com/subject/rururltx.html