J'utilise le modèle de conception Chaîne de responsabilité en Java. La chaîne dans son ensemble représente une demande d'objets de certains types. Chaque "gestionnaire" de la chaîne est responsable de gérer les unités demandées d'un type. Toutes les demandes sont traitées essentiellement de la même manière, j'ai donc essayé de rendre le générique "Handler". Ainsi, dans la poignée de classe I ont besoin d'une méthode comme celui-ci (le traitement lui-même est simplifiée car elle n'obscurcir mon problème):Gestionnaire de chaîne de responsabilité avec les génériques Java
public class Handler<T>{
int required;
Handler<?> next;
public void handle(Object O){
if(o instanceof T){
required --;
}else{
next.handle(o);
}
}
}
Le problème est qu'un instanceof comme cela est impossible. Parce que le type T n'est pas explicitement stocké pendant l'exécution (ou c'est ce que j'ai compris lors de mes recherches sur internet). Ma question est la suivante: quelle est la meilleure alternative?
en effet .... cela fonctionne pour le niveau d'objet supérieur, mais les génériques semblent être par défaut 'Object' dans les signatures de méthode au moment de la compilation. En tous cas. La deuxième solution est supprimée, mais la première solution reste bien dans ce que vous essayez d'atteindre –
c'est le plus proche de la solution que je voulais atteindre, merci. Maintenant, je peux laisser tomber la partie générique, parce que je peux tout faire avec la classe comme argument – Ingdas