1) Si el mapa puede ser inmutable:
Collections.emptyMap();
// or, in some cases:
Collections.<String, String>emptyMap();
Usted Tendrá que usar el último a veces cuando el compilador no puede determinar automáticamente qué tipo de mapa se necesita (esto se llama type inference). Por ejemplo, considere un método declarado como esto:
public void foobar(Map<String, String> map){ ... }
Al pasar el Mapa vacía directamente a él, tiene que ser explícito acerca del tipo:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String, String>emptyMap()); // works fine
2) Si necesita ser capaz de modificar el Mapa, a continuación, por ejemplo:
new HashMap<String, String>();
(como tehblanx pointed out)
Adición: si su proyecto utiliza Guava, dispone de las siguientes alternativas:
1) mapa inmutable:
ImmutableMap.of();
// or:
ImmutableMap.<String, String>of();
Por supuesto, no hay grandes beneficios aquí en comparación con Collections.emptyMap()
. From the Javadoc:
Este mapa se comporta y un desempeño comparable a Collections.emptyMap()
, y es preferible sobre todo para la consistencia y capacidad de mantenimiento de su código .
2) mapa que se puede modificar:
Maps.newHashMap();
// or:
Maps.<String, String>newHashMap();
Maps
contiene métodos de fábrica similares para crear instancias de otros tipos de mapas, así, como TreeMap
o LinkedHashMap
.
¿Cuál es su tipo declarado para fileParameters? – jjnguy
Probablemente también obtenga una ClassCastException. –
fileParameters debería ser un Mapa y no un HashMap. –