springboot 实体类转map
时间: 2023-10-23 10:21:27 浏览: 53
在Spring Boot中,我们可以使用Java 8的Stream API来将实体类转换为Map。下面是一个示例代码:
```java
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
public class EntityUtils {
private EntityUtils() {}
public static Map<String, Object> convertEntityToMap(Object entity) {
BeanWrapper beanWrapper = new BeanWrapperImpl(entity);
return beanWrapper.getPropertyDescriptors()
.stream()
// 过滤class属性
.filter(pd -> !pd.getName().equals("class"))
.collect(Collectors.toMap(
pd -> pd.getName(),
pd -> beanWrapper.getPropertyValue(pd.getName())
));
}
}
```
使用示例:
```java
MyEntity entity = new MyEntity();
entity.setName("张三");
entity.setAge(20);
Map<String, Object> map = EntityUtils.convertEntityToMap(entity);
System.out.println(map);
```
输出结果:
```
{name=张三, age=20}
```
在上面的示例代码中,我们使用了Spring的`BeanWrapper`来获取实体类的属性列表并逐一转换为Map。由于BeanWrapper获取到的属性列表中包含了一个名为"class"的属性,因此我们在Stream中使用了`filter`方法将其过滤掉。最后,使用`Collectors.toMap`方法将属性名和属性值组成一个Map。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)