J'essaye d'expédier des objets pour séparer la méthode selon leur sous-classe.Comment invoquer une méthode java basée sur un type de sous-classe?
Par exemple, considérons ces 2 objets
class A extends I {}
class B extends I {}
et la méthode
void dispatch(I i) {}
à dispatch()
, je voudrais invoquer une méthode selon le type de i
. Par conséquent, si i
est réellement de type A, la méthode handlerA(A a)
sera appelée. Si c'est du type B, handlerB(B b)
sera appelé, et ainsi de suite ... J'ai essayé avec la méthode de surcharge mais je suppose que cela ne fonctionne pas de cette façon
quelle est la meilleure façon d'y parvenir? Je voudrais éviter d'utiliser l'instruction if/else ...
Merci à l'avance,
modifier: Je ne peux pas modifier l'une de ces classes.
Cela suppose que 'gestionnaire()' est logique d'avoir sur 'A' et' B'. Si c'est le cas, votre réponse est 100% correcte. –
Kevin: Vous avez raison, c'est le cas. Mais seulement genre de. Je pense toujours que l'OP manque le concept sous-jacent du polymorphisme, et même si ma suggestion exacte ne convient pas, je pense qu'un schéma d'une fonction/propriété dans 'I' est la voie à suivre. –
si handler() est dans I, et que A et B implémentent I, mais cela n'a pas de sens d'avoir handler() sur les deux, je pense qu'il y a ** probablement ** d'autres problèmes. – Carl