java map转实体类
时间: 2023-12-07 11:39:01 浏览: 91
map转Java实体类
以下是Java中将Map转换为实体类的示例代码:
```java
public class EntityMapUtils {
/**
* 将一个 Map对象转化为JavaBean
*
* @param map 包含属性值的map
* @param beanClass 要转化成的类
* @return 转化出来的JavaBean对象
*/
public static <T> T mapToEntity(Map<String, Object> map, Class<T> beanClass) throws Exception {
// 创建 JavaBean 对象
T obj = beanClass.newInstance();
// 获取类中所有的属性集合
Field[] fields = obj.getClass().getDeclaredFields();
// 遍历属性集合,将属性值从map中赋值给JavaBean对象
for (Field field : fields) {
// 获取属性名
String fieldName = field.getName();
// 获取属性值
Object fieldValue = map.get(fieldName); // 如果属性值不为空,则将属性值赋值给JavaBean对象
if (fieldValue != null) {
field.setAccessible(true);
field.set(obj, fieldValue);
}
}
return obj;
}
/**
* 将实体类转换为Map
*
* @param obj 要转化的实体类
* @return 转化出来的Map对象
*/
public static Map<String, Object> entityToMap(Object obj) throws Exception {
// 创建Map对象
Map<String, Object> map = new HashMap<>();
// 获取类中所有的属性集合
Field[] fields = obj.getClass().getDeclaredFields();
// 遍历属性集合,将属性值从JavaBean对象中取出并存入Map对象中
for (Field field : fields) {
// 获取属性名
String fieldName = field.getName();
// 获取属性值
field.setAccessible(true);
Object fieldValue = field.get(obj);
// 如果属性值不为空,则将属性值存入Map对象中
if (fieldValue != null) {
map.put(fieldName, fieldValue);
}
}
return map;
}
}
```
使用示例:
```java
// 定义一个实体类
public class User {
private String name;
private int age;
public User() {
}
public User(String name, int age) {
this.name = name;
this.age = age;
}
// 省略getter和setter方法
}
// 将Map转换为实体类
Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 20);
User user = EntityMapUtils.mapToEntity(map, User.class);
// 将实体类转换为Map
User user = new User("张三", 20);
Map<String, Object> map = EntityMapUtils.entityToMap(user);
```
阅读全文