将List<Map<String,Object>>转为List<Object>

经常在开发中会需要将List<Map<String,Object>>转为List,Object也就是你自己对应的目标对象,因为经常要用,干脆就自己封装了一个,代码示例如下:

假设有一个类:Animal.java

public class Animal {
   
    private String name;
    private int age;

    public Animal(String name, int age) {
   
        this.name = name;
        this.age = age;
    }

    // 省略getter和setter方法

    @Override
    public String toString() {
   
        return "Animal{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

将 List<Map<String, Object>> 转换为 List 类型。接收 Class 类型作为参数,并使用反射来创建指定类的对象:

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class MapListToObjectListConverter {
   
    public static <T> List<T> convertList(List<Map<String, Object>> listOfMaps, Class<T> clazz) {
   
        List<T> resultList = new ArrayList<>();

        for (Map<String, Object> map : listOfMaps) {
   
            try {
   
                Constructor<T> constructor = clazz.getConstructor(String.class, int.class);
                String name = (String) map.get("name");
                int age = (int) map.get("age");
                T instance = constructor.newInstance(name, age);
                resultList.add(instance);
            } catch (NoSuchMethodException | InstantiationException |
                    IllegalAccessException | InvocationTargetException e) {
   
                e.printStackTrace();
            }
        }

        return resultList;
    }

    public static void main(String[] args) {
   
        // 假设这是从其他地方得到的List<Map<String, Object>>
        List<Map<String, Object>> listOfMaps = new ArrayList<>();
        Map<String, Object> map1 = Map.of("name", "Lion", "age", 5);
        Map<String, Object> map2 = Map.of("name", "Tiger", "age", 3);
        listOfMaps.add(map1);
        listOfMaps.add(map2);

        // 将List<Map<String, Object>>转换为List<Animal>
        List<Animal> animals = convertList(listOfMaps, Animal.class);

        // 输出转换后的Animal对象列表
        for (Animal animal : animals) {
   
            System.out.println(animal);
        }
    }
}

这里的 convertList 方法接受 List<Map<String, Object>> 和一个 Class 参数,其中 T 是你希望转换的目标类型。方法使用反射根据提供的类 clazz 创建对象,并将其添加到结果列表中。在这个例子中,我们将其用于 Animal 类型。

相关推荐

  1. ListMap<String,Object>>转为ListObject

    2023-12-12 17:10:02       63 阅读
  2. List转换Map

    2023-12-12 17:10:02       29 阅读
  3. `List<String>`转换为`List<Long>`

    2023-12-12 17:10:02       56 阅读
  4. ObjectList

    2023-12-12 17:10:02       43 阅读
  5. Gson(ListObject>转String 、String转ListObject>)

    2023-12-12 17:10:02       42 阅读
  6. ListMap

    2023-12-12 17:10:02       32 阅读
  7. <span style='color:red;'>list</span>

    list

    2023-12-12 17:10:02      172 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-12 17:10:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-12 17:10:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-12 17:10:02       82 阅读
  4. Python语言-面向对象

    2023-12-12 17:10:02       91 阅读

热门阅读

  1. 策略模式实现

    2023-12-12 17:10:02       50 阅读
  2. 数据结构和算法专题---8、加密算法

    2023-12-12 17:10:02       52 阅读
  3. linux输出的重定向无效问题和解决

    2023-12-12 17:10:02       62 阅读
  4. Spark SQL将Hive表中的数据写入到MySQL数据库中

    2023-12-12 17:10:02       65 阅读
  5. 2023小红书Android面试之旅

    2023-12-12 17:10:02       71 阅读
  6. 数据处理生产环境_获取当前日期的前一天日期

    2023-12-12 17:10:02       58 阅读
  7. String转Date,Date转String

    2023-12-12 17:10:02       52 阅读
  8. XSLVGL2.0 User Manual 资源管理器(v2.0)

    2023-12-12 17:10:02       54 阅读
  9. PTA-列出所有祖先结点

    2023-12-12 17:10:02       47 阅读