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

  FORUM HardWare.fr
  Programmation

  Pour les pro du Java... une petite question sur les types!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pour les pro du Java... une petite question sur les types!

n°68261
Phoenyx
Faute de mieux:"use the Force"
Posté le 29-10-2001 à 19:27:40  profilanswer
 

Salut à tous!
 
Je suis en train de commencer mon travail de fin d'étude en Java et petit à petit, je découvre ce merveilleux langage... mais:
 
En utilisant les List et autres structures fournies dans java.util, j'obtiens des erreurs de conversion de type à la compilation.  
 
En effet, les fonctions fournies commme  
 
public Object get(int index)
 
renvoient un type "Object" et.. si on place la valeur de retour dans une variable qui a le véritable type des éléments(par exemple List si on a une liste de listes)et PAF, une erreur!  
:??:  
Que faire? Y a-t-il une astuce? Faut-il créer soit même une fonction de conversion? Comment faire?
 
Merci d'avance. :wahoo:

 

[edtdd]--Message édité par phoenyx--[/edtdd]

mood
Publicité
Posté le 29-10-2001 à 19:27:40  profilanswer
 

n°68269
[FDS]
Posté le 29-10-2001 à 20:24:27  profilanswer
 

La conversion d'une instance d'une classe en une instance d'une autre classe s'appelle le transtypage, en Java ca marche comme ça:
 
Vector v = new Vector();
v.add("toto" );
String nom = (String) v.firstElement();
 
En Java on ne peut pas typer les collections, tu dois donc indiquer le type que tu veux avoir à chaque récupération d'un élément. ( Ca va peut-être changer un jour car c'est en cours de discussion au JCP JSR : Add Generic Types To The JavaTM Programming Language)

n°68271
iskream
Posté le 29-10-2001 à 20:34:42  profilanswer
 

En anglais, on utiliseras le terme "cast" pour designer cette methode. Tu trouveras plein de docs sous ce terme la.

n°68281
Phoenyx
Faute de mieux:"use the Force"
Posté le 29-10-2001 à 20:46:28  profilanswer
 

Merci beaucoup pour ta réponse... mais...
 
Mon problème est que le type des objet que j'ai placé dans la collection est un type que j'ai défini, appelons-le Node.
Ce Node est un type complexe puisqu'il s'agit en fait d'une classe avec plein de champs!
Mon problème est que le procédé que tu m'as indiqué ne fonctionne donc pas! Par exemple:
 
Node void Lecture(Vector v) { //Avec v contenant déjà des Node
  Node n= new Node();  
  Node n= (Node) v.firstElement();
  return(n);
}

n°68394
iskream
Posté le 30-10-2001 à 09:27:59  profilanswer
 

phoenyx a écrit a écrit :

Merci beaucoup pour ta réponse... mais...
 
Mon problème est que le type des objet que j'ai placé dans la collection est un type que j'ai défini, appelons-le Node.
Ce Node est un type complexe puisqu'il s'agit en fait d'une classe avec plein de champs!
Mon problème est que le procédé que tu m'as indiqué ne fonctionne donc pas! Par exemple:
 
Node void Lecture(Vector v) { //Avec v contenant déjà des Node
  Node n= new Node();  
  Node n= (Node) v.firstElement();
  return(n);
}  




 
Déjà, si tu évitais de déclarer ta fonction avec "Node void...", et que tu mettais simplement "Node Lecture(Vector v) {..."
je crois que ca irais bcp mieux :)
Si ça ne fonctionne toujours pas, indique nous le message d'erreur exacte qui t'es retourné.
 
@+

n°68395
iskream
Posté le 30-10-2001 à 09:29:55  profilanswer
 

Je n'avais meme pas lu le code jusqu'au bout, il y a d'autres erreurs.
En voici un qui syntaxiquement devrait être correct :
 
Node Lecture(Vector v) { //Avec v contenant déjà des Node
 Node n= new Node();  
 n= (Node) v.firstElement();
 return(n);
}

n°68423
pab29
Posté le 30-10-2001 à 11:10:44  profilanswer
 

Node n= new Node();    
n= (Node) v.firstElement();  
 
 
c'est con ça, ça sert à quoi de créer un new Node si c'est pour pas s'en servir ?

n°68425
iskream
Posté le 30-10-2001 à 11:15:08  profilanswer
 

pab29 a écrit a écrit :

Node n= new Node();    
n= (Node) v.firstElement();  
 
 
c'est con ça, ça sert à quoi de créer un new Node si c'est pour pas s'en servir ?  




exact :)

n°68607
benou
Posté le 31-10-2001 à 00:27:48  profilanswer
 

je dirais même plus :  
 
public Node lecture(Vector v) {  
 return (Node) v.firstElement();  
}

n°83587
Bandenabos
§;o)
Posté le 21-12-2001 à 10:39:13  profilanswer
 

Je dirai qu'en plus, si tu retourne toujours le premier élément ça sert à rien !! Je verrais plutot :  
 
public Node[] lecture(Vector v)
{  
  Node[]      l_Nodes = new Node[v.size()];
  Enumeration l_Objects = v.elements();
  int         l_Index   = 0;
  while (l_Objects.hasModeElement())
     l_Nodes[i ++] = (Node)l_Objects.nextElement();
   
  return l_Nodes;  
}

mood
Publicité
Posté le 21-12-2001 à 10:39:13  profilanswer
 

n°83651
benou
Posté le 21-12-2001 à 13:37:36  profilanswer
 

je dirai encore plus : ca sert à quoi de poser la question "aux pros de Java" alors que c'est un problème de base et qu'on voit au 1er coup d'oeil que tu n'y connais quasiment rien en Java ??

n°83660
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 21-12-2001 à 13:58:11  profilanswer
 

benou a écrit a écrit :

je dirai encore plus : ca sert à quoi de poser la question "aux pros de Java" alors que c'est un problème de base et qu'on voit au 1er coup d'oeil que tu n'y connais quasiment rien en Java ??  




 
ttttt  :non:  
Ne sois pas si agressif, veux tu! :D


---------------
What is popular is not always right, what is right is not always popular :D
n°83664
benou
Posté le 21-12-2001 à 14:02:50  profilanswer
 

ouais mais bon quand même ... faut pas pousser non plus ...

n°83665
benou
Posté le 21-12-2001 à 14:04:33  profilanswer
 

mais bon, je suis ennervé aujourd'hui ... ca m'apprendra a pas dormir ...

n°83667
darklord22
Nightwish rulezzzzzzzzzzzzz
Posté le 21-12-2001 à 14:05:17  profilanswer
 

benou a écrit a écrit :

ouais mais bon quand même ... faut pas pousser non plus ...  




Le topic qui est censé attiré tout le monde hein :D
Je vois ce que tu veux dire. Ca m'énerve aussi ce genre d'approches.


---------------
What is popular is not always right, what is right is not always popular :D
n°83670
benou
Posté le 21-12-2001 à 14:07:00  profilanswer
 

ouais c'est exactement ca ! :O


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

  Pour les pro du Java... une petite question sur les types!

 

Sujets relatifs
Question aux analystes-programmeurs: méthode MERISE ?[JAVA] impression du contenu d'un JEditorPane
[java] : inclusion de nouveau packages dans le jdk...[JAVA ou C++] lequel des deux pour mon projet ?
question du newbie de chez newbie ! help !je recherche un java script ???? SVP
[JAVA] transformer un .java en exe ??gif anime et java ??
[XML] Recherche liens utiles, librairies javaje suis nouveau... et j ai une question...
Plus de sujets relatifs à : Pour les pro du Java... une petite question sur les types!


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