Rechercher : dans
Par :

[java] utilisation de put()

Dernière réponse le 1 avr 2005 à 16:11:20 jerome, le 1 avr 2005 à 13:35:06 
 Signaler ce message aux modérateurs

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

Configuration: j2sdk 1.4.2

Meilleures réponses pour « [java] utilisation de put() » dans :
Hibernate [Partie 2]: configuration et utilisation Voir Voir la première partie de l'astuce Hibernate (Partie 1): Présentation Configuration Hibernate dans une application JAVA Utilisation de Hibernate dans une application JAVA : configuration et utilisation de Hibernate Configuration...
[mythe] JavaScript c'est la même chose que Java Voirmythe Javascript est le même langage que Java Réalité FAUX Explications Ces deux langages existent bien, et ce sont tous les deux des langages de programmation (moins poussée pour le JavaScript), mais ce ne sont pas les mêmes...
Dictionnaire pour téléphones mobiles supportant Java VoirJLearnItME est une application gratuite pour téléphone mobile permettant d'avoir un dictionnaire comprenant 15 langues. La seule condition que doit remplir votre téléphone est de supporter le Java. L'interface utilisateur est...
Java - L'héritage VoirLa notion d'héritage Le concept d'héritage est un des concepts les plus importants de la programmation orientée objet, car il conditionne irréversiblement la façon selon laquelle un code Java est écrit. L'héritage est un mécanisme permettant de...
Les classes Java VoirLa notion d'objet Le langage Java intègre fortement le concept objet, il s'agit donc d'un langage orienté objet (LOO). Le terme langage orienté objet est plus qu'une simple appellation de plus pour désigner un type de langage, il...
Java - Constructeurs VoirLe constructeur: une méthode particulière Pour instancier une classe, c'est-à-dire créer un objet à partir d'une classe, il s'agit d'utiliser l'opérateur new. En réalité l'opérateur new, lorsqu'il est utilisé, fait appel à une méthode spéciale de...

1

Satrialien, le 1 avr 2005 à 15:55:22
  • +2

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

Répondre à Satrialien

2

 jerome, le 1 avr 2005 à 16:11:20

Merci pour ta réponse je comprends mieux !!

jerome

Répondre à jerome