Liste<int> est-il invalide et comment contourner ce problème ?Montrer qu'utiliser int comme paramètre de type générique provoque une erreur de compilation.
int est un type primitif (stocke la valeur directement en mémoire), alors qu'un type classe (comme Integer) stocke un pointeur vers un objet dans le tas.Liste<int> provoque une erreur de compilation — seule Liste<Integer> est valide.Montrer qu'utiliser int comme paramètre de type générique provoque une erreur de compilation.
int est un primitif : sa valeur est directement dans la variable, il n'y a pas d'objet dans le tas ; un paramètre de type générique doit être une classe :
// int est un type primitif : valeur directe
// Integer est une classe : référence vers un objet dans le tas
int x = 5; // stocké directement
Integer y = 5; // référence vers new Integer(5)
Tenter Liste<int> produit une erreur de compilation ; seule la version avec le type classe compile :
// ERREUR : type argument int is not within bounds of type-variable E
Liste<int> l1 = new Liste<int>(3, null); // ne compile pas
// CORRECT :
Liste<Integer> l2 = new Liste<Integer>(3, null); // compile
Liste<int> est rejetée à la compilation car int n'est pas un type référence.
Les applications suivantes et la correction guidée sont réservées aux membres Premium
La méthode et sa première application corrigée restent en accès libre. Le Premium débloque les applications suivantes, l'aide IA et le suivi de ta maîtrise.