Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1303 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Pb de casting, depuis un Vector [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Pb de casting, depuis un Vector [Résolu]

n°174288
bobuse
Posté le 10-07-2002 à 13:45:47  profilanswer
 

Vouala le code :
v est un Vector

Code :
  1. Boolean [] b=(Boolean [])(v.toArray());


me balance l'exception : java.lang.ClassCastException: [Ljava.lang.Object;
 
bon, alors là je me dis, mon vector est mal foutu. voyons voir :
 

Code :
  1. Object [] o=(v.toArray());
  2. System.out.println("contenu :" );
  3. for (int j=0;j<o.length;j++) {
  4.     System.out.println("  "+o[j].getClass());
  5. }
  6. Boolean [] b=(Boolean [])o;


et là :

Code :
  1. contenu :
  2.   class java.lang.Boolean
  3.   class java.lang.Boolean
  4.   class java.lang.Boolean
  5.   class java.lang.Boolean
  6.   class java.lang.Boolean
  7.   class java.lang.Boolean
  8.   class java.lang.Boolean
  9. java.lang.ClassCastException: [Ljava.lang.Object;


 
Il est où le problème


Message édité par bobuse le 10-07-2002 à 14:08:54
mood
Publicité
Posté le 10-07-2002 à 13:45:47  profilanswer
 

n°174290
bobuse
Posté le 10-07-2002 à 13:46:34  profilanswer
 

j'ajoute que l'exception me renvoie bien à la ligne ou je recaste !

n°174296
lorill
Posté le 10-07-2002 à 13:51:08  profilanswer
 

Comme tu l'as vu, ton vecteur contient des Boolean. Par contre toArray() renvoie un tableau d'Object. Faut caster apres avoir récupéré l'élément
 

Code :
  1. Object [] o= v.toArray();
  2. for (int j=0;j<o.length;j++) {
  3.    Boolean  b=(Boolean)o[j];
  4.    //traitement
  5. }


 
Si tu veux absolument un tableau de Boolean, faut le créer et le remplir manuellement.

n°174301
bobuse
Posté le 10-07-2002 à 13:53:49  profilanswer
 

Ha bon ?
 
Mais c'est tout pourri alors !  :heink:  :sweat:

n°174303
lorill
Posté le 10-07-2002 à 13:56:00  profilanswer
 

ben Vector est générique, il ne peut donc gérer que des objets.
Comment tu veux qu'il devine que y'a que des booléens dedans, alors qu'il pourrait y avoir n'importe quoi d'autre a coté ?

n°174308
bobuse
Posté le 10-07-2002 à 13:59:40  profilanswer
 

oui d'accord, mais je trouve ça nul qu'on puisse pas recaster un tableau ([])

n°174310
bobuse
Posté le 10-07-2002 à 14:01:04  profilanswer
 

paske moi j'ai une fonction qui prend en paramètre un (Boolean []), alors je transforme mon Vector en tableau  d'Object , que je recaste ensuite et hop !  :fou:

n°174313
gfive
Posté le 10-07-2002 à 14:05:44  profilanswer
 

Essaye comme ça :  
 
 
 
Boolean [] tab = (Boolean[]) v.toArray(new Boolean[v.size()]);
 
Ca devrait marcher.

n°174315
lorill
Posté le 10-07-2002 à 14:06:37  profilanswer
 

bobuse a écrit a écrit :

paske moi j'ai une fonction qui prend en paramètre un (Boolean []), alors je transforme mon Vector en tableau  d'Object , que je recaste ensuite et hop !  :fou:  




 
bon ben c'est un peu lourd, mais pas très difficile...
 

Code :
  1. Object[] os = v.toArray();
  2. Boolean[] bs = new Boolean[os.length];
  3. for(int i=0;i<os.length;i++)
  4.   bs[i] = (Boolean)os[i];

n°174317
bobuse
Posté le 10-07-2002 à 14:08:23  profilanswer
 

:jap:  :jap:  :jap:  :jap:  
bien ouèj gfive !

mood
Publicité
Posté le 10-07-2002 à 14:08:23  profilanswer
 

n°174325
gfive
Posté le 10-07-2002 à 14:12:36  profilanswer
 

:D Appelle moi maître, non mais!:p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Pb de casting, depuis un Vector [Résolu]

 

Sujets relatifs
[JAVA] Drag and drop .[java & solaris] First day of week
[VB(A)] Progressbar...[résolu]object non available [résolu]
[JAVA] probleme de threadproblème... [résolu]
[CSS] Curseur main... (résolu)[Delphi] TShellTreeView, comment forcer un répertoire ? (résolu)
y a un classe java qui permet de bosser sur des chemins ?[JAVA @] logiciel de gestion [DELPHI vous pouvez venir aussi]
Plus de sujets relatifs à : [Java] Pb de casting, depuis un Vector [Résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR