[jse5/generics] Méthodes génériques
Bonjour,
J'ai un petit problème suite à l'utilisation (abusive) de méthodes génériques pour factoriser du code.
Je cherche en fait à instancier un objet au sein d'une méthode générique de la manière suivante :
Code:
1 2 3 4 5 6 7 8
| private <T extends A> T instanciationSelective(boolean classeA) {
T unObjet = null;
if (classeA)
unObjet = new A();
else
unObjet = new B();
return unObjet
} |
avec la classe B héritant de la classe A
évidemment je vous le donne en mille, le compilo n'arrive pas à piger que unObjet est une instance de A ou de ses sous-classes et me sort deux bonnes grosses erreurs "incompatibles types" (found A required T et found B required T). :(
si je caste à l'instanciation, là j'ai le droit à l'habituel warning "unchecked cast".
Comment se sortir de là sans erreur ni warning :aie: ? Pourquoi dans les méthodes génériques la substitution n'est pas faite (alors que dans une classe générique, tout objet de type T aurait accès aux méthodes définies dans A)?
Merci
++