¿Por qué no se compila Map<String, ?> test = ImmutableMap.builder().build();
, pero Map<String, ?> test = ImmutableMap.<String, Object>builder().build();
funciona bien?¿Por qué ImmutableMap.builder(). Build() no elige los parámetros de tipo correctos?
La primera sniplet código falla con:
error: incompatible types
Map<String, ?> test = ImmutableMap.builder().build();
^
required: Map<String,?>
found: ImmutableMap<Object,Object>
Creo que los committers guayaba pensados para que esto funcione.
¿Es esto algo que podría corregirse en el lenguaje? Es decir, ¿podemos presentar un informe de error con Oracle? – Gili
No ... probablemente, me temo. Si no lo incluyeron en la inferencia de tipo aumentado con el operador de diamante en Java 7, dudo que puedan incluirlo en absoluto. Probablemente haya algunos casos extremos extraños que serían imposibles de manejar por alguna razón, pero no estoy seguro de los detalles. –
@Gili: Sé que hay algo de trabajo para mejorar la inferencia de tipos para Java 8 ... esto _puede ser algo que pueda inferirse con las reglas mejoradas, no estoy seguro. – ColinD