将 List<Map<String, Object>> 转换为对应的对象可以通过反射或手动映射来实现。以下是一个示例,演示如何使用手动映射的方式将 List<Map<String, Object>> 转换为对象列表。
示例代码
假设我们有一个简单的对象类 User:
public class User {
    private String name;
    private int age;
    // Constructors, getters and setters
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User{name='" + name + "', age=" + age + '}';
    }
}转换方法
下面是一个方法,将 List<Map<String, Object>> 转换为 List<User>:
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Converter {
    public static List<User> convertToUserList(List<Map<String, Object>> mapList) {
        List<User> userList = new ArrayList<>();
        
        for (Map<String, Object> map : mapList) {
            String name = (String) map.get("name");
            int age = (Integer) map.get("age");
            User user = new User(name, age);
            userList.add(user);
        }
        
        return userList;
    }
}使用示例
下面是如何使用上述转换方法的示例:
import java.util.*;
public class Main {
    public static void main(String[] args) {
        // 模拟输入数据
        List<Map<String, Object>> mapList = new ArrayList<>();
        
        Map<String, Object> user1 = new HashMap<>();
        user1.put("name", "Alice");
        user1.put("age", 30);
        
        Map<String, Object> user2 = new HashMap<>();
        user2.put("name", "Bob");
        user2.put("age", 25);
        
        mapList.add(user1);
        mapList.add(user2);
        
        // 转换
        List<User> userList = Converter.convertToUserList(mapList);
        
        // 输出结果
        for (User user : userList) {
            System.out.println(user);
        }
    }
}运行结果
运行上述代码将输出:
User{name='Alice', age=30}
User{name='Bob', age=25}使用Hutool
使用 Hutool 库可以方便地将 List<Map<String, Object>> 转换为对应的对象。Hutool 提供了 BeanUtil 类,使用它的 mapToBean 方法可以实现该转换。
示例代码
假设我们有一个 User 类:
public class User {
    private String name;
    private int age;
    // Constructors, getters and setters
    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User{name='" + name + "', age=" + age + '}';
    }
}转换方法
使用 Hutool 进行转换的代码示例如下:
import cn.hutool.core.bean.BeanUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Converter {
    public static List<User> convertToUserList(List<Map<String, Object>> mapList) {
        List<User> userList = new ArrayList<>();
        
        for (Map<String, Object> map : mapList) {
            User user = BeanUtil.mapToBean(map, User.class, true);
            userList.add(user);
        }
        
        return userList;
    }
}使用示例
下面是如何使用上述转换方法的示例:
import java.util.*;
public class Main {
    public static void main(String[] args) {
        // 模拟输入数据
        List<Map<String, Object>> mapList = new ArrayList<>();
        
        Map<String, Object> user1 = new HashMap<>();
        user1.put("name", "Alice");
        user1.put("age", 30);
        
        Map<String, Object> user2 = new HashMap<>();
        user2.put("name", "Bob");
        user2.put("age", 25);
        
        mapList.add(user1);
        mapList.add(user2);
        
        // 转换
        List<User> userList = Converter.convertToUserList(mapList);
        
        // 输出结果
        for (User user : userList) {
            System.out.println(user);
        }
    }
}运行结果
运行上述代码将输出:
User{name='Alice', age=30}
User{name='Bob', age=25}注意事项
- 确保在项目中引入了 Hutool 库,可以在 Maven 中添加以下依赖:
 
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.9</version> <!-- 请根据需要选择版本 -->
</dependency>- 使用 
BeanUtil.mapToBean时,可以设置第三个参数为true,以忽略缺失的字段。 










