Je lisais le concept d'effacement de type dans les génériques. En exécutant le morceau de code ci-dessous, j'ai été confus.Effacement de type dans la confusion des génériques
public class CollectionsWild {
void Test(Collection<?> t){
System.out.println("Collection");
}
void Test(List<Integer> t){
System.out.println("List");
}
public static void main(String[] args) {
CollectionsWild o = new CollectionsWild();
o.Test(new ArrayList<String>());
}
}
Selon le concept d'effacement de type "List<Integer> t
" est converti en "Liste t" en bytecode. Alors, pourquoi appelle-t-on mon test de méthode qui a Collection comme paramètre. Il aurait dû appeler la méthode avec List comme paramètre
Merci, mais le lien que vous avez donné n'est pas lié à ce que je demandais .. –