object对象转换为List<Map<String,Object>>
时间: 2023-10-14 16:17:43 浏览: 65
可以使用Java中的Stream API和Lambda表达式来实现将一个Object对象转换为List<Map<String, Object>>。具体实现代码如下:
```java
import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ObjectToListMapConverter {
public static List<Map<String, Object>> convert(Object obj) {
Class<?> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
return Arrays.stream(fields)
.map(field -> {
field.setAccessible(true);
try {
Object value = field.get(obj);
return Map.entry(field.getName(), value);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
})
.collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toList())))
.entrySet().stream()
.map(entry -> Map.of(entry.getKey(), entry.getValue().get(0)))
.collect(Collectors.toList());
}
}
```
这个方法将一个Object对象的所有字段名和值都转换成了一个Map,然后再将这些Map组成一个List返回。注意这里使用了Java 9中的Map.of()方法来创建一个不可变的Map。
相关推荐
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)