erreur ClassCastException

erreur ClassCastException - Java - Programmation

Marsh Posté le 18-07-2006 à 15:48:04    

Salut à tous!
 
Voila mon problème :
 
J'ai une classe mere qui s'appelle XtNode avec deux classes filles : XtDirectoryNode et XtDataNode.
Ces deux classes filles implémentent une interface Node.
J'espere que tout le monde arrive a suivre lol
 
Voici les en-tete de mes classes pour mieux comprendre :

Code :
  1. public interface Node


Code :
  1. public class XtNode


Code :
  1. public class XtDirectoryNode extends XtNode implements Node


Code :
  1. public class XtDataNode extends XtNode implements Node


 
Voici le code provoquant une exception ClassCastException :

Code :
  1. returnValue = ((Node)root).insert(obj, newNode);


 
La variable root est de type XtNode.
Je fais un cast comme ceci car la classe XtNode ne possède pas la méthode Node : root est soit de type XtDirectoryNode, soit de type XtDataNode, un des deux mais je ne sais pas lequel ca dépendra de l'execution. J'ai donc mis la méthode insert dans l'interface Node comme cela je suis censé pouvoir écrire cette ligne mais ca ne marche pas.
 
Voila je ne sais pas si je suis bien arrivé a me faire comprendre...
Merci d'avance au forum!

Reply

Marsh Posté le 18-07-2006 à 15:48:04   

Reply

Marsh Posté le 18-07-2006 à 15:53:27    

vingt $ que t'as pas importé le bon Node.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 18-07-2006 à 15:55:14    

Comment ca?
Si tu arrives a me trouver l'erreur je te les donne les 20$ vu depuis le tps que je suis dessus! lol ;)

Reply

Marsh Posté le 18-07-2006 à 16:28:58    

L'erreur c'est simplement que XtNode n'est pas un Node donc tu peux pas caster. XtNode ne pourrait pas etre abstract, implementer Node mais laisser la methode en question abstraite, i.e. à implementer par les sous classes?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 18-07-2006 à 17:05:21    

C'est bon problème résolu!
Merci au forum
 
En fait, j'ai contourné le problème en initialisant root en XtDataNode. Parce que quand il passait sur ca, il était de type XtNode, mais avec une petite astuce : problème résolu!
 
Voila, merci!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed