springcloud项目中LinkedHashMap 强转成 User对象 的通用工具类
时间: 2023-05-29 19:02:47 浏览: 158
以下是将LinkedHashMap转换为User对象的通用工具类:
```
public class MapToUserUtil {
public static User convertMapToUser(LinkedHashMap<String, Object> map) {
User user = new User();
user.setId((Integer) map.get("id"));
user.setUsername((String) map.get("username"));
user.setPassword((String) map.get("password"));
user.setRole((String) map.get("role"));
return user;
}
}
```
该方法将传入的LinkedHashMap转换为User对象,并将其中的属性赋值给User对象的各个属性。其中,map中的键名应与User对象的属性名相同。该方法中将id属性强制转换为Integer类型。如果map中id键对应的值不是Integer类型,会抛出ClassCastException异常。同理,对于其他属性也要进行类型转换。如果传入的LinkedHashMap中缺少某个属性,那么该属性在User对象中的值将为null。
相关问题
springcloud项目中LinkedHashMap 强转成 对象的通用工具类
在SpringCloud项目中,我们可以使用以下代码将LinkedHashMap强制转换为对象的通用工具类:
```java
public class ObjectUtil<T> {
public T convertToObject(LinkedHashMap<String, Object> map, Class<T> clazz) throws Exception {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
String jsonString = mapper.writeValueAsString(map);
return mapper.readValue(jsonString, clazz);
}
}
```
使用该工具类时,我们只需要将传递给该方法的LinkedHashMap和要转换成的对象类传递给该方法,就可以轻松地将LinkedHashMap转换为对象。例如:
```java
Map<String, Object> map = new LinkedHashMap<>();
// 填充map
ObjectUtil<MyObject> objectUtil = new ObjectUtil<>();
MyObject myObject = objectUtil.convertToObject(map, MyObject.class);
```
请注意,此代码需要使用Jackson库进行序列化和反序列化,并且需要在maven或gradle中正确设置依赖项。
springcloud项目中LinkedHashMap 强转成 对象的通用工具类,对象以user为例
以下是将LinkedHashMap强转为User对象的通用工具类:
```java
public class LinkedHashMapUtil {
/**
* 将LinkedHashMap转换为指定类型的对象
* @param map 要转换的LinkedHashMap
* @param clazz 转换后的对象类型
* @return 转换后的对象
* @throws Exception
*/
public static <T> T convertToObject(LinkedHashMap<String, Object> map, Class<T> clazz) throws Exception {
ObjectMapper mapper = new ObjectMapper();
T obj = mapper.convertValue(map, clazz);
return obj;
}
}
```
使用方法:
```java
// 假设有一个LinkedHashMap<String, Object>数据类型的变量map
User user = LinkedHashMapUtil.convertToObject(map, User.class);
```
阅读全文