Salut,
Envoyé par
palnap
c'était pourtant une application très classique des types génériques...
Non : ton code n'est pas du tout type-safe !
Tu as une déclaration comme cela :
private <T extends A> T instanciationSelective(boolean classeA)
Et un code comme ceci :
1 2
| B b1 = instanciationSelective(true);
B b2 = instanciationSelective(false); |
Le compilateur n'a aucun moyen de vérifier le type de retour de la méthode car celui-ci dépend d'un booléen...
Il faudrait une analyse du code pour vérifier cela ce que ne fait pas le compilateur (et qu'il ne pourrait pas forcément faire de toute manière).
Explique un peu plus ce que tu fais car il doit surement y avoir une autre solution. De plus si tu fais des cast en dur autant utiliser deux méthode différente (l'exemple de instanciationSelective() que tu montres n'apporte aucune intérêt).
a++
Partager