Faire un cast dynamique - Java - Programmation
Marsh Posté le 01-04-2003 à 11:32:44
bin tu dois savoir au minimum avec quoi tu travailles hein
instanceof peux te permettre de trouver le type
if (o instanceof MyObject)
// ... cast to MyObject
Marsh Posté le 01-04-2003 à 11:37:49
Code :
|
ça renvoit java.lang.String, essaye pour voir (je ne sais pas si ça marche)?
Marsh Posté le 01-04-2003 à 11:39:29
Cherrytree a écrit : Classiquement, en Java on est amené à faire :
|
Et avec DYNAMIC_CAST ?
Oups, on parle de Java ici, pas de C++, sorry
Marsh Posté le 01-04-2003 à 11:40:05
ça renvoit peut-être le bon type, mais je ne sais pas quoi en faire après, comment peut-on l'utiliser pour caster ?
Marsh Posté le 01-04-2003 à 11:44:49
DarkLord a écrit : bin tu dois savoir au minimum avec quoi tu travailles hein |
Y a pas un autre moyen ? Et avec getClass() ? Le truc c'est que getClass() retourne une classe et dans le cast, c'est une chaîne...
Marsh Posté le 01-04-2003 à 11:46:11
krosso a écrit :
|
Est-ce que qqn sait si ça marche ça ?
Marsh Posté le 01-04-2003 à 11:47:49
Le mieux c'est quand meme de savoir quels sont les types d'objets que tu es censé rencontrer ... S'il y en a vraiment trop, et que tu as besoin de faire un traitement particulier, ben faut faire une généralisation Mais bon après ca depend vraiment du contexte ...
Marsh Posté le 01-04-2003 à 11:47:54
Cherrytree a écrit : |
Oui.
Marsh Posté le 01-04-2003 à 11:49:06
ReplyMarsh Posté le 01-04-2003 à 11:50:36
krosso a écrit : |
+1
a part pour le debug, je suis pas convaincu de l'utilite de cette fonction ...
instanceof est a mon sens beaucoup plus utilisable
Marsh Posté le 01-04-2003 à 12:05:38
krosso a écrit : |
+1
Marsh Posté le 01-04-2003 à 12:05:53
bobuse a écrit : |
c'est aussi mon avis
Marsh Posté le 01-04-2003 à 12:08:52
ReplyMarsh Posté le 01-04-2003 à 12:20:09
DarkLord a écrit : |
J'aime bien instanceof. Le truc, c'est si j'ai 50 types différents sur lequel le cast peut porter, ça fait lourdingue.
Marsh Posté le 01-04-2003 à 12:22:09
Cherrytree a écrit : |
ce qui est surtout lourdingue c'est que tu aies un objet donné qui puisse etre de 50 types différents. C'est ca le vrai problème à mon avis
Marsh Posté le 01-04-2003 à 12:23:40
DarkLord a écrit : |
Je suis pas encore chef de projet. Pour l'instant je fais ce qu'on me dit.
Marsh Posté le 01-04-2003 à 12:29:09
Cherrytree a écrit : |
Marsh Posté le 01-04-2003 à 12:43:27
Cherrytree a écrit : Classiquement, en Java on est amené à faire :
|
Ta question contient une contradiction. Soit tu connais, au moment d'écrire ton programme, le type réel de ton objet, et l'instruction ci-dessus est exactement ce que tu veux faire, soit tu ne connais pas le type de l'objet avant l'exécution, et de nouveaux problèmes se posent, en particulier le suivant : comment caractérises-tu le type attendu ?
Si c'est par un objet de type Class, qui décrit la classe attendue, alors tu peux écrire :
Code :
|
Si tu te moques du type réel, mais que tout ce que tu sais, c'est que ton objet a une méthode toto() avec certains arguments bien particuliers, alors tu peux utiliser la réflexion (package java.lang.reflect) pour récupérer un objet de type Method et invoquer ainsi la méthode.
Mais si je peux me permettre, c'est carrément crade. Dans ce dernier cas, tu devrais au moins pouvoir définir une interface qui définit cette méthode commune, et qu'implémentent toutes tes classes candidates. En faisant cela, tu te ramènerais à faire un simple cast vers ce type interface ancêtre.
Marsh Posté le 01-04-2003 à 13:00:03
Merci Biface. Avec ça tout est dit.
Dark > Je disais simplement que le projet sur lequel je suis est vieux de 2 ans, avec toutes les dérives que cela a inclu. Si le programme est crade, c'est que les interfaces de programmation, le framework n'arrêtent pas de changer. Je pense que ici personne n'est en mesure de gérer la situation. C'est l'anarchie, le pouvoir aux codeurs.
Marsh Posté le 01-04-2003 à 13:41:25
Cherrytree a écrit : Merci Biface. Avec ça tout est dit. |
et ca tourne ?
Marsh Posté le 01-04-2003 à 13:43:24
Cherrytree a écrit : C'est l'anarchie, le pouvoir aux codeurs. |
Je rêve depuis longtemps de travailler dans une telle boite...
Marsh Posté le 01-04-2003 à 14:57:08
ReplyMarsh Posté le 01-04-2003 à 14:59:31
Harkonnen a écrit : |
Ah viens pas tout nous saccager !
Marsh Posté le 01-04-2003 à 15:53:07
Cherrytree a écrit : |
haaaaaa....
vive les timer swing dans les servlets
vive la génération dynamique de HTML par servlet (PHP ? connais pas...)
vive les connexions qui ne se ferment jamais à la base...
vivent les projets qui fuient de partout
vive l'anarchie
"I am an anarchist !"
Marsh Posté le 01-04-2003 à 11:19:16
Classiquement, en Java on est amené à faire :
Maintenant si j'ignore que o est en fait du type MyObject, comment puis-je faire le bon cast, dynamiquement ?
---------------
Le site de ma maman