List<Map> 转 List<JavaBean> 工具类
时间: 2023-08-22 07:06:09 浏览: 123
你可以使用Apache Commons BeanUtils库来实现List<Map>转List<JavaBean>的操作。下面是一个示例工具类的实现:
```java
import org.apache.commons.beanutils.BeanUtils;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class ListToBeanConverter {
public static <T> List<T> convertListToBeanList(List<Map<String, Object>> mapList, Class<T> beanClass) {
List<T> beanList = new ArrayList<>();
try {
for (Map<String, Object> map : mapList) {
T bean = beanClass.getDeclaredConstructor().newInstance();
BeanUtils.populate(bean, map);
beanList.add(bean);
}
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
// 处理异常
e.printStackTrace();
}
return beanList;
}
}
```
在上述代码中,`convertListToBeanList`方法接受一个List<Map<String, Object>>和目标JavaBean的Class对象作为参数。它遍历mapList中的每个Map,并使用BeanUtils类的`populate`方法将Map中的键值对设置到JavaBean对象中。然后将转换后的JavaBean对象添加到结果列表中。
使用该工具类,你可以将一个List<Map>转换为对应的List<JavaBean>。示例如下:
```java
List<Map<String, Object>> mapList = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("property1", "value1");
map1.put("property2", 123);
mapList.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("property1", "value2");
map2.put("property2", 456);
mapList.add(map2);
List<JavaBean> beanList = ListToBeanConverter.convertListToBeanList(mapList, JavaBean.class);
```
在上述示例中,我们创建一个包含属性名和对应值的Map对象列表,并将其传递给`convertListToBeanList`方法。它将返回一个JavaBean对象列表,其中的属性值已经被设置。
希望这个工具类对你有帮助!如果还有其他问题,请随时提问。
阅读全文