[java] utilisation de put()
Résolu/Fermé
Bonjour,
j'ai un problème concernant l'utilisation de la méthode put() de la classe HashMap :
Lordque je fais un put(String, boolean) il refuse de compiler en me disant que c'est impossible.
Par contre si je fais un put(String, Boolean) ca marche nikel.
Meme chose avec put(String, int) qui ne marche pas et put(String, Integer) qui fonctionne.
J'ai un peu de mal à comprendre pourquoi : les objets de type boolean et int ne sont-ils pas des 'Objects' ???
Y a-t-il une solution à cela ?
Merci d'avance
j'ai un problème concernant l'utilisation de la méthode put() de la classe HashMap :
Lordque je fais un put(String, boolean) il refuse de compiler en me disant que c'est impossible.
Par contre si je fais un put(String, Boolean) ca marche nikel.
Meme chose avec put(String, int) qui ne marche pas et put(String, Integer) qui fonctionne.
J'ai un peu de mal à comprendre pourquoi : les objets de type boolean et int ne sont-ils pas des 'Objects' ???
Y a-t-il une solution à cela ?
Merci d'avance
A voir également:
- Java put
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java décompiler - Télécharger - Langages
2 réponses
Satrialien
Messages postés
52
Date d'inscription
mercredi 9 mars 2005
Statut
Membre
Dernière intervention
28 janvier 2006
13
1 avril 2005 à 15:55
1 avril 2005 à 15:55
Bonjour,
c'est normal que ça ne fonctionne puisque la signature de la méthode put est "put(Object,Object)".
Ton compilateur attend donc 2 objets en paramètres : si tu lui fournis un int ou un boolean, il va pas aimer car ce sont des types primitifs.
Les types primitifs ne sont donc pas des objets, tu ne trouveras d'ailleurs pas de classe "int" ou "boolean" dans la javadoc.
La solution dans un tel cas est d'utiliser les classes wrappers : ce sont des classes qui permettent de gérer des types simples comme des objets.
Par exemple, la classe java.lang.Integer est la classe wrapper du type primitif "int". Donc si tu veux faire un put dans ta HashMap, tu fais :
int monEntier = 3;
String maChaine = "maChaine";
maHashMap.put(maChaine,new Integer(monEntier));
Si tu veux ensuite récupérer par la suite ta valeur sous forme "int", il suffit de faire :
int monEntier2 = ((Integer)maHashMap.get(maChaine)).intValue();
Aurélien
c'est normal que ça ne fonctionne puisque la signature de la méthode put est "put(Object,Object)".
Ton compilateur attend donc 2 objets en paramètres : si tu lui fournis un int ou un boolean, il va pas aimer car ce sont des types primitifs.
Les types primitifs ne sont donc pas des objets, tu ne trouveras d'ailleurs pas de classe "int" ou "boolean" dans la javadoc.
La solution dans un tel cas est d'utiliser les classes wrappers : ce sont des classes qui permettent de gérer des types simples comme des objets.
Par exemple, la classe java.lang.Integer est la classe wrapper du type primitif "int". Donc si tu veux faire un put dans ta HashMap, tu fais :
int monEntier = 3;
String maChaine = "maChaine";
maHashMap.put(maChaine,new Integer(monEntier));
Si tu veux ensuite récupérer par la suite ta valeur sous forme "int", il suffit de faire :
int monEntier2 = ((Integer)maHashMap.get(maChaine)).intValue();
Aurélien
1 avril 2005 à 16:11
jerome