Bonjour à tous
J'ai une classe qui gère des collections. J'ai plusieurs attributs de type ArrayList<T> ou T prendre plusieurs formes différentes. J'aimerais les gérer de la même manière, or je me heurte à des name clash à cause du Type Erasure de Java, c'est-à-dire que le compilateur ne regarde que le type du container pour déterminer la signature des méthodes.
Donc ces 3 méthodes ont la même signature:
public void set(ArrayList<Double> v) { };
public void set(ArrayList<ArrayList<Double>> vv) { };
public void set(ArrayList<ArrayList<ArrayList>>> vvv) { };
J'aimerais éviter d'utiliser des noms différents pour ces méthodes car j'utilise ces collections de manière dynamiques, c'est à dire que l'utilisateur ne sait pas quelle collection il utilise à un moment T.
Donc ma question est la suivante: connaissez-vous une manière de contourner ce Type Erasure et le name clash pour arriver à mes fins ?
Merci d'avance![]()
Partager