Salut,
Ce code ne compile pas car les Generics ne conservent pas le type à l'exécution, et il n'est donc pas possible de le récupérer de la sorte...
Si tu veux faire cela tu es obligé de le stocker manuellement, par exemple en passant le type au constructeur :
1 2 3 4 5 6 7 8 9 10 11 12
| class UserType<C extends FrmwrkEnumItem> {
private final Class<C> returnedClass;
public UserType(Class<C> returnedClass) {
this.returnedClass = returnedClass;
}
public Class returnedClass() {
return this.returnedClass;
}
} |
Mais cela a pour défaut de "complexifié" la création de l'objet :
UserType<FrmwrkEnumItem> u1 = new UserType<FrmwrkEnumItem>(FrmwrkEnumItem.class);
Plus d'info : Les Generics ne sont pas des Templates comme les autres !
a++
Partager