valeur - recherche dans hashmap java




Avertissement Eclipse avec Java HashMap (6)

Eclipse dit "HashMap est un type brut" Lorsque j'utilise le code suivant

HashMap = new HashMap();

Une idée de ce qui pourrait être faux?


Cela signifie généralement que vous mélangez du code générique avec du code non générique.

Mais comme votre exemple ne compile même pas c'est assez difficile à dire ....


Eclipse vous donnera cet avertissement lorsque vous utiliserez un HashMap non générique en utilisant Java 5 ou plus récent.

Voir aussi: La leçon des génériques dans les tutoriels Java de Sun.

Edit: En fait, ici, je vais donner un exemple aussi:

Dites que je veux associer le nom de quelqu'un à son objet Person :

Map<String, Person> map = new HashMap<String, Person>();
// The map.get method now returns a Person
// The map.put method now requires a String and a Person

Ceux-ci sont vérifiés lors de la compilation; Les informations de type sont perdues lors de l'exécution en raison de la façon dont Java implémente Generics.


Il manque des génériques, ie. Si vous ne le savez pas, réglez le compilateur eclipse sur java 1.4


Il manque le type générique. Vous devez spécifier la paire générique de valeur-clé pour votre carte. Par exemple, voici une déclaration qui instancie une HashMap avec une clé de type String et une valeur de type Integer.

Map<String, Integer> map = new HashMap<String, Integer>();

hashmap est un type brut et doit donc être paramétré, c'est-à-dire quelles que soient les données que nous recevons par la fonction haspmap, leur type doit être déclaré pour obtenir ses fonctions

par exemple

HashMap<String, Integer> map = new HashMap<String, Integer>();

Toutes ces réponses sont valides, vous pouvez également utiliser l'annotation @SurpressWarnings pour obtenir le même résultat, sans devoir recourir à des génériques réels. ;)





hashmap