Bonjour,
Je voulais savoir, c'est quoi la différence entre un List<?> et un List<T>?
Merci!
Bonjour,
Je voulais savoir, c'est quoi la différence entre un List<?> et un List<T>?
Merci!
C'est facile :
List<?> accepte n'importe quoi alors que List<T> n'accepte que les objets du type T.
Conséquence :
- avec ? tu ne pourras faire que des lectures dans ton objet. Toute écriture génèrera une erreur à la compilation.
- avec T tu as l'avantage de pouvoir donner des précisions sur ton type car si tu fais :
Tu indiques que les types des deux listes sont les mêmes. Précision que tu ne peux pas donner avec ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<T> liste1; List<T> liste2;
Voilà en gros.
Il y a d'autres subtilités mais tu les trouveras dans des tutos sur le net.
Je préfère dire que List<?> est une List dont on ne sait pas ce qu'elle contient, alors que List<T> est une List qui contient des T.
Ce qui du, coup explique les conséquences :
- On ne peut obtenir que des Object d'une List<?> parce qu'on ne sait pas ce qu'on a le droit de mettre dedans.
- On ne peut rien mettre dans une List<?> parce qu'on ne sait pas ce qui peut être mis dedans.
- On peut obtenir des T et mettre des T dans une List<T>, parce qu'on sait que ce qu'elle contient, c'est des T.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Oui, c'est une bien meilleure façon de présenter les choses.
Merci pour les réponses
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager