#java #collections #java-8
#java #Коллекции #java-8
Вопрос:
Я пытаюсь скопировать элементы списка из List<A>
в List<B>
и сталкиваюсь с некоторой ошибкой типа.
Мой код:
List<AttachmentTypeDto> attachmentTypeList=clientDetails.getAttachmentTypeDto();
List<ClientAttachmentTypeEntity> mappedAttachmentList=attachmentTypeList.stream().map(temp ->{
ClientAttachmentTypeEntity toAttachmentObject=new ClientAttachmentTypeEntity();
toAttachmentObject.setAttachmentTypeId(temp.getAttachmentTypeId());
toAttachmentObject.setClientId(temp.getClientId());
}).collect(Collectors.toList());
Это выдает мне ошибку, подобную этой:
The method map(Function<? super AttachmentTypeDto,? extends R>) in the type Stream<AttachmentTypeDto> is not applicable for the arguments ((<no type> temp) -> {})
Как устранить эту ошибку?
Комментарии:
1. я не понимаю, почему кто-то проголосовал -1
2. вы должны вернуть
toAttachmentObject
в функции map..map(temp->{ ... return toAttachmentObject;}) ...
3. это действительно решило мою проблему, спасибо @Hadi J
4. Замечание: я бы предложил извлечь процесс сопоставления (т. Е. лямбда-тело внутри
.map(...)
в отдельном методе, например,convertAttachmentDtoToClientAttachmentDto(...)
и затем вызватьmap(this::convertAttachmentDtoToClientAttachmentDto)
.5. отлично, я работал над тем же решением 🙂