Bonjour à toutes et tous,
voilà mon questionnement :
j'écris actuellement un projet où j'use au maximum de classes génériques. Au fur et à mesure des héritages, la liste des types génériques s'allonge (pour la plupart ce sont des classes abstraites qui héritent les unes des autres).
En y réfléchissant différemment, je me suis dit que ce serait en fait pratique de constituer une liste de mes types génériques dans un enum, avec derrière la tête l'idée d'établir une correspondance entre le nom de mon type et le type réel à utiliser grace à une EnumMap.
Ainsi par exemple, j'ai plusieurs type générique (T1, T2... Tn) qui dérivent de Number. Mais pour le moment, je ne vais avoir besoin que d'Integer. donc en fait au moment de fabriquer une classe concrète, je vais me trouver à écrire
public class MaClass extends MaClassAbstraite<Integer,Integer,(etc...)>
C'est long et ennuyeux, et ça implique au minimum de recompter mes types si je veux finalement en changer un lors de l'implémentation de la classe concrète ; alors que si je pouvais stocker des types en ecrivant un truc du genre
EnumMap<EnumDesTypes, Class>
et que la syntaxe me permette de substituer mon nom générique par le type correspondant, je me simplifierai la vie. Mais je ne vois pas comment écrire ça (mes essais se sont révélés infructueux).
J'espère avoir été suffisamment clair. Sinon j'essaierai de vous fournir un exemple quand je serai à côté de ma machine (là je suis au taf...)
Merci d'avance de vos réponses
Partager