Преобразовать список потоков в список - PullRequest
0 голосов
/ 05 июня 2019

У меня есть лямбда-выражение, в котором я хочу создать список объектов, но я получаю ошибку

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> в качестве возвращаемого типаиз лямбда-выражения.Как мне этого добиться?

1 Ответ

4 голосов
/ 05 июня 2019

Использовать 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());
...