ケイト:
私はロングのコレクションを持っている、との理由で、私はキーとしてコレクションの要素を持ち、かつ1は、(すべてのキーが同じ値を持つ)の値として列挙型をあらかじめ定義され、このコレクションからマップを作成する必要があります。
私は以下のように、ストリームでこれを達成しようとしています:
private Map<Long, Marker> mapMarker(Collection<Long> ids, Marker marker) {
return ids.stream().collect(Collectors.toMap(Function.identity(), marker));
}
コンパイラは、このエラーで失敗しました:
no instance(s) of type variable(s) T, U exist so that Marker conforms to Function<? super T, ? extends U>
それが失敗する理由誰かが私に説明してもらえますか?ストリームと期待される結果を得るためにとにかくありますか?
また:
場合Marker
あなたがLLのキーに対してマップする列挙型であるids
、あなたのようにそれを行うことができますが。
return ids.stream().collect(Collectors.toMap(Function.identity(), id -> marker));
あなただけのことを、非常に接近していたid -> marker
であるFunction
ため、予想通りCollectors.toMap