java8以上高效List<Map<String,Object>> 怎么转List<bean>
时间: 2024-10-23 12:03:30 浏览: 64
将 Java 8 及以上的 `List<Map<String, Object>>` 转换成 `List<bean>` 需要通过反射或者使用一些工具库,因为 Map 和自定义 bean 类型通常是不直接兼容的。以下是使用反射的一个简单示例:
```java
import java.util.List;
import java.util.Map;
// 假设我们有一个 Bean 类,比如 UserBean
class UserBean {
private String name;
private int age;
// getters and setters...
}
public List<UserBean> convertList(List<Map<String, Object>> mapList) {
return mapList.stream()
.map(map -> {
try {
// 使用反射创建一个新的 UserBean 实例,并设置属性值
Class<UserBean> clazz = UserBean.class;
UserBean bean = clazz.newInstance();
for (Map.Entry<String, Object> entry : map.entrySet()) {
Method setter = clazz.getMethod("set" + entry.getKey().substring(0, 1).toUpperCase() + entry.getKey().substring(1), entry.getValue().getClass());
setter.invoke(bean, entry.getValue());
}
return bean;
} catch (Exception e) {
throw new RuntimeException("Error creating bean from map", e);
}
})
.collect(Collectors.toList());
}
```
这里的关键点是遍历 map 中的每一个键值对,找到对应的字段并设置到 UserBean 的实例上。
阅读全文