Caros, necessito extrair um dado de uma Lista de objetos que contém uma outra lista de Objetos de sua estrutura.
Fiz todo o filtro para pegar exatamente as informações que necessito e após adentrei na lista de objeto com o map utilizando Stream API.
Se tento realizar o cast para uma List acontece o erro:
Exception in thread "main" java.lang.ClassCastException: class java.util.stream.ReferencePipeline$3 cannot be cast to class java.util.List (java.util.stream.ReferencePipeline$3 and java.util.List are in module java.base of loader 'bootstrap')
at com.vilt.AdobeSign.Control.Filter.TotalGroups(Filter.java:47)
at com.vilt.AdobeSign.AdobeSignApplication.main(AdobeSignApplication.java:21)
Estrutura do Objeto Agreements que estou retirando de um json:
"id":
"type":
"name":
"groupId":
"displayDate":
"displayParticipantSetInfos": [{
"displayUserSetMemberInfos": [{
"fullName":
"email":
"company":
}]
}],
"latestVersionId":
"status":
"esign":
"hidden":
Código:
List<String> listaEmail = (List<String>) agreements.stream()
.filter(a -> Objects.nonNull(a.getGroupId()))
.filter(a -> a.getGroupId().equals(scanG.getGroupId()))
.map(a -> a.getDisplayParticipantSetInfos().stream()
.map(p -> p.getDisplayUserSetMemberInfos().stream()
.map(u -> u.getEmail())
.collect(Collectors.toList())
)
);
Alguém poderia me dizer o que estou fazendo de errado?