Estoy utilizando el patrón de diseño Chain of Responsibility en Java. La cadena como un todo representa una solicitud de objetos de ciertos tipos. Cada "Manejador" en la cadena es responsable de manejar las unidades solicitadas de 1 tipo. Todas las solicitudes se manejan esencialmente de la misma manera, así que traté de hacer que la clase "Handler" fuera genérica. Así que en la clase manija Necesito un método como este (el manejo en sí se simplifica, ya que sólo ofuscaría mi problema):controlador de cadena de responsabilidad con java generics
public class Handler<T>{
int required;
Handler<?> next;
public void handle(Object O){
if(o instanceof T){
required --;
}else{
next.handle(o);
}
}
}
El problema es que un instanceof como esto es imposible. Porque el tipo T no se almacena explícitamente durante el tiempo de ejecución (o eso es lo que entendí durante mi investigación en Internet). Entonces mi pregunta es: ¿cuál es la mejor alternativa?
de hecho ... funciona para un nivel de objeto más alto, pero los genéricos parecen predeterminados para 'Objeto' en las firmas de métodos en tiempo de compilación. De todas formas. La segunda solución se eliminó, pero la primera solución aún se adapta bien a lo que está tratando de lograr –
esto es lo más cercano a la solución que quería lograr, gracias. Ahora puedo soltar la parte genérica, porque puedo hacer todo con la Clase como argumento – Ingdas