AssetLink 개체를 필터링하고 AssetLink의 대상인 Content 개체를 얻은 다음 Content 개체 기반의 ContentLinkMetadata 개체 필드를 설정하는 내 메서드를 리팩토링하고 싶습니다. .Java 8 - 메서드 맵이 인수에 적용되지 않습니다.
private List<ContentLinkMetadata> getAndFillInternalLinks(final Lesson lesson) {
List<ContentLinkMetadata> internalLinks = new ArrayList<>();
lesson.getAssetLinks().stream()
.filter(linkAsAssetLink -> ALLOWED_INTERNAL_LINK_TYPES.contains(linkAsAssetLink.getTargetType()))
.map(linkAsAssetLink -> {
Content link = contentProvider.getLazyById(linkAsAssetLink.getTargetId());
ContentLinkMetadata internalLink = new ContentLinkMetadata();
internalLink.setDescription(link.getDescription());
internalLink.setId(link.getId());
internalLink.setTitle(link.getTitle());
internalLink.setFriendlyUrl(friendlyUrlResolver.makeUrl(link));
internalLink.setTypeId(link.getTypeId());
internalLinks.add(internalLink);
});
return internalLinks;
}
그러나 나는 형 스트림에있어서, 맵이 인수 (표현형 linkAsAssetLink)에 적용되지 않으며 나는 그것을 이해하지 않는다 "라고 .MAP에 오류를 받고 있어요 : 내 새로운 방법은 같습니다. 왜 LinkAsAssetLink가 "noType"인지는 AssetLink이며 contentProvider의 메소드에서이 메소드를 사용할 수 있습니다. 내가 실수를 어디에서하고 있는지 말해 줄 수 있습니까?