Estoy tratando de enviar objetos para separar el método de acuerdo con su subclase.¿Cómo invocar un método java basado en un tipo de subclase?
Por ejemplo, considere los 2 objetos
class A extends I {}
class B extends I {}
y el método
void dispatch(I i) {}
en dispatch()
, me gustaría para invocar un método de acuerdo con el tipo de i
. Por lo tanto, si i
es realmente de tipo A, se llamará al método handlerA(A a)
. Si es de tipo B, se llamará a handlerB(B b)
, y así sucesivamente ... Intenté con la sobrecarga de métodos, pero supongo que no funciona de esta manera
¿cuál es la mejor manera de lograr esto? Me gustaría evitar el uso de if/else ...
Gracias de antemano,
editar: No puedo modificar cualquiera de esas clases.
Esto supone que 'manejador()' tiene sentido tener en 'A' y 'B'. Si ese es el caso, tu respuesta es 100% correcta. –
Kevin: Tienes razón, lo hace. Pero solo un poco. Sigo pensando que al OP le falta el concepto subyacente de polimorfismo, y aunque mi sugerencia exacta no sea adecuada, creo que algún esquema de una función/propiedad en 'I' es el camino a seguir. –
si el controlador() está en I, y tanto A como B implementan I, pero no tiene sentido tener handler() en ambos, creo que hay ** probablemente ** otros problemas. – Carl