1) Si la carte peut être immuable:
Collections.emptyMap();
// or, in some cases:
Collections.<String, String>emptyMap();
Vous Il faudra parfois utiliser ce dernier lorsque le compilateur ne pourra pas déterminer automatiquement quel type de carte est nécessaire (cela s'appelle type inference). Par exemple, envisager une méthode déclarée comme ceci:
public void foobar(Map<String, String> map){ ... }
Lors du passage de la carte vide directement, vous devez être explicite sur le type:
foobar(Collections.emptyMap()); // doesn't compile
foobar(Collections.<String, String>emptyMap()); // works fine
2) Si vous devez être en mesure de modifier la carte, par exemple:
new HashMap<String, String>();
(comme tehblanx pointed out)
Addendum: si votre projet utilise Guava, vous avez les alternatives suivantes:
1) carte Immuable:
ImmutableMap.of();
// or:
ImmutableMap.<String, String>of();
Attribuées, pas de gros avantages ici par rapport à Collections.emptyMap()
. From the Javadoc:
Cette carte se comporte et exécute à Collections.emptyMap()
comparable, et est préférable principalement pour la cohérence et la maintenabilité de votre code .
2) Carte que vous pouvez modifier:
Maps.newHashMap();
// or:
Maps.<String, String>newHashMap();
Maps
contient des méthodes d'usine similaires pour instancier d'autres types de cartes aussi bien, comme TreeMap
ou LinkedHashMap
.
Quel est votre type déclaré pour les paramètres de fichier? – jjnguy
Vous obtiendrez probablement une exception ClassCastException. –
fileParameters doit être une carte et non une HashMap. –