El Kate:
Tengo una colección de largo, y por una razón que necesito para crear un mapa de esta colección, que tiene los elementos de la colección como llaves, y 1 predefinido de enumeración como valor (todas las teclas tienen el mismo valor).
Estoy tratando de lograr esto con arroyos, como a continuación:
private Map<Long, Marker> mapMarker(Collection<Long> ids, Marker marker) {
return ids.stream().collect(Collectors.toMap(Function.identity(), marker));
}
Compilador error con este error:
no instance(s) of type variable(s) T, U exist so that Marker conforms to Function<? super T, ? extends U>
Podría alguien por favor me explique ¿por qué se produce un error? ¿Hay alguna forma de conseguir el resultado esperado con corrientes?
también:
Si Marker
es la enumeración que desea asignar ll contra las llaves en ids
, puede hacerlo como:
return ids.stream().collect(Collectors.toMap(Function.identity(), id -> marker));
Usted fue muy cerca, sólo que id -> marker
es un Function
como se esperaba paraCollectors.toMap