Carles Xuriguera:
Tengo este pedazo de código
List<BookDto> deskOfficer =
delegationExtendedDto
.stream()
.filter(Objects::nonNull)
.filter(d -> d.getMembers() !=null && !d.getMembers().isEmpty())
.map(d -> d.getMembers()
.stream()
.filter(Objects::nonNull)
.filter(m -> RolesEnum.RESPONSIBLE_ADMIN.equals(m.getRole())))
.collect(Collectors.toList());
pero tengo un error de compilación
Type mismatch: cannot convert from List<Stream<BookDto>> to List<BookDto>
también:
Parece que estás buscando flatmap
como:
List<BookDto> deskOfficer = delegationExtendedDto
.stream()
.filter(Objects::nonNull)
.filter(d -> d.getMembers() != null) // stream would handle the empty case
.flatmap(d -> d.getMembers().stream()) // <<< here -- the stream objects are different
.filter(Objects::nonNull)
.filter(m -> RolesEnum.RESPONSIBLE_ADMIN.equals(m.getRole())))
.collect(Collectors.toList());