我有一个本地查询,该查询返回一个List<Object[]>
。
我想将此List
转换为Stream<Object>
。
这些对象是数据库中不同表中的不同列。
什么是最好的解决方案?
创建DTO并将List<DTO>
转换为Stream<DTO>
吗?我该怎么办?
答案 0 :(得分:9)
假设您的DTO
类具有适当的构造函数,则可以编写如下内容:
List<Object[]> input = ...
Stream<DTO> dtos = input.stream().map(arr -> new DTO(arr[0], arr[1], ... , arr[n]);
答案 1 :(得分:9)
使用flatMap
:
List<Object[]> objectsList = new ArrayList<>();
Stream<Object> objectStream = objectsList.stream()
.flatMap(Arrays::stream);