私は、AssetLinkオブジェクトをフィルタリングし、AssetLinkのターゲットであるContentオブジェクトを取得し、Contentオブジェクトに基づくContentLinkMetadataオブジェクトのフィールドを設定するメソッドをリファクタリングしたいと考えました。 。私の新しい方法は、以下のようになります。Java 8 - メソッドマップは引数には適用されません(<noType>)
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;
}
しかし、私はタイプのストリームのメソッドマップが(NOTYPE linkAsAssetLink)の引数には適用されませんし、私はそれを理解していない」と言う.MAP上のエラーを取得しています。なぜ、LinkAsAssetLinkが「noType」であるのか、それは実際にAssetLinkであり、私はcontentProviderのメソッドでそのメソッドを使用できますか?