将流列表转换为列表

时间:2019-06-05 17:26:18

标签: java list lambda java-8

我有一个lambda表达式,我想在其中创建对象列表,但出现错误

List<ClassObject> classObject = obj1.getFileId().stream()
                .map(x -> obj1.getCustomObj().stream()
                        .map(y -> obj1.builder().Id(x).name(y.getName()).value(y.getValue())
                                .details(obj1.getDetails()).build()))
                .collect(Collectors.toList());

错误

Type mismatch: cannot convert from List<Stream<ClassObject>> to List<ClassObject>

我想要List<ClassObject>作为lambda表达式的返回类型。我该如何实现?

1 个答案:

答案 0 :(得分:4)

使用flatMap:

List<ClassObject> classObject = obj1.getFileId().stream()
            .flatMap(x -> obj1.getCustomObj().stream()
                    .map(y -> obj1.builder().Id(x).name(y.getName()).value(y.getValue())
                            .details(obj1.getDetails()).build()))
            .collect(Collectors.toList());
相关问题