Uso de Java arroyos de recogida convertido al mapa: cómo poner predefinido de enumeración como valor

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 Markeres 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 -> markeres un Functioncomo se esperaba paraCollectors.toMap

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=187073&siteId=1
Recomendado
Clasificación