在开发时我们有时候需要将将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<>();// 获取对象的所有字段并将其转换为MapField[] 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>>}
}
点赞、收藏不迷路