Probleme de cast [Java] - Java - Programmation
Marsh Posté le 21-02-2009 à 10:23:43
T'as rien compris à java ou à ce que fait un cast en java, retournes apprendre.
Marsh Posté le 21-02-2009 à 12:40:38
En gros, pour faire simple, le problème est le suivant :
Dans la POO, tu peux faire le genre de trucs suivant :
1 - On considère qu'un chat est un animal (chat extends animal)
2 - On créé un chat (new chat)
3 - On utilise le chat en tant qu'animal (cast de chat en animal)
4 - On peut utiliser l'animal en tant que chat car à la base c'était déjà un chat ... (cast de animal en chat)
Toi, ce que tu essaye de faire c'est :
1' - Idem que 1
2' - On créé un animal (new animal)
3' - On utilise l'animal en tant que chat (cast de animal en chat)
Or 3 est incorrect dans la POO (comme dans la vraie vie) car qu'est-ce qui te dit que ton animal est effectivement un chat, mais pas plutot un chien, ou un zebre ...
Sans plus de précision ton animal est un animal et rien de plus, tu ne peux pas le considérer comme quelque chose de plus 'précis' en termes de POO sauf si à la base c'était déjà un chat, or comme tu le créé en tant qu'animal (2'), ce n'est pas possible !
J'espère que cette 'image' t'aura aidée, mais sinon, comme le dit Masklinn tu devrais sérieusement réviser tes BASES de POO et/ou de Java ...
Marsh Posté le 21-02-2009 à 02:18:19
Bonjour,
Je suis en train de coder differents traitements d'arbres avec le design pattern Visitor...
Mais j'ai un petit problème avec les cast :
J'ai une classe TreeProgram :
où l'on ajoute juste a la classe CommonTree la methode accept de l'interface Element...
et lorsque je fais :
j'ai le droit à un magnifique :
Exception in thread "main" java.lang.ClassCastException: org.antlr.runtime.tree.CommonTree cannot be cast to lasco.util.visitor.TreeProgram
Quelqu'un aurait une explication svp ?
merci d'avance