fred240683
Messages postés23Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention 9 novembre 2004
-
25 oct. 2004 à 12:05
fred240683
Messages postés23Date d'inscriptionmardi 19 octobre 2004StatutMembreDernière intervention 9 novembre 2004
-
25 oct. 2004 à 16:49
Bonjour
J'aimerais recupérer un element d'un vecteur vect et le mettre dans une variable de type int de la manière suivante:
int w;
w=vect.elementAt(0);
or lors de la compilation j'ai un problème d' "incompatibles types"
Quelqu'un pourrait t'il m'aider svp.
Merci
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 25 oct. 2004 à 13:35
:big) Neodante :big)
Erreur de débutant !!!!
Tous les éléments placés dans un Vector sont de type Object (normal je dirais !) hors si tu veux extraire ou même placer un entier de type int dans ce Vector tu vas devoir utiliser une classe enveloppe (du moins pour les versions avant java 5.0 qui ne font pas de l'autoboxing !).
Une classe enveloppe c'est quoi ???
Tu ne peux pas mettre des types primitifs dans un Vector (le problème est le même pour les ArrayList !) tel que long, int, float, byte, ... seul des objets peuvent y être placés. Par conséquent java possède des objets tel que Long, Integer, Float, Byte, ... qui permettent de mettre une valeur d'un certain type sous une forme objet pour pouvoir être placé dans un tableau d'objet...
Donc pour pouvoir extraire un int ou un object, tu dois toujours faire un cast, et si c'est un objet enveloppe ensuite extraire la valeur de cet objet :
Integer integer = new Integer(5);
monvector.add(integer);
Integer toto = (Integer)monvector.elementAt(0); // Cast obligatoire !!!!
int titi = toto.value();
Voilà ;-)
@+