java将List<Object>转为List<Map<String, Object>>,可复用

2023-12-14 11:36:44

在开发时我们有时候需要将将List转为List<Map<String, Object>>,可以参考下面的方法

ObjectToMapConverter.java

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ObjectToMapConverter {
    public static <T> List<Map<String, Object>> convertList(List<T> objectList, Class<T> clazz) {
        List<Map<String, Object>> mapList = new ArrayList<>();

        for (T obj : objectList) {
            Map<String, Object> map = new HashMap<>();
            
            // 获取对象的所有字段并将其转换为Map
            Field[] fields = clazz.getDeclaredFields();
            for (Field field : fields) {
                field.setAccessible(true); // 设置字段可访问
                String fieldName = field.getName();
                Object value;
                try {
                    value = field.get(obj);
                    map.put(fieldName, value);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }

            mapList.add(map); // 将新的 Map 添加到列表中
        }

        return mapList;
    }
}

调用示例:

User.java

@Data
public class User{
    private Integer userId;
    private String userName;


}

Main方法

public class Main {
    public static void main(String[] args) {
        List<User> list= new ArrayList<>(); 
        
        User use1 = new User();
        use1.setUserId(1001);
        use1.setUserName("十七");
        list.add(user1);

        User user2 = new User();
        user2.setUserId(1002);
        user2.setUserName("小明");
        list.add(user2);

		//...

        List<Map<String, Object>> mapList = ObjectToMapConverter.convertList(list, User.class);
        
        // 现在 mapList 包含了转换后的 List<Map<String, Object>>
    }
}

点赞、收藏不迷路

文章来源:https://blog.csdn.net/qq_39327650/article/details/134866844
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。