Génériques Java et covariance : comprendre les limites
La covariance dans les génériques fait référence à la capacité d'un sous-type à remplacer son supertype sans violer tapez la sécurité. Cependant, en Java, les génériques ne sont pas covariants, ce qui signifie que les sous-types ne peuvent pas être attribués à des variables de supertype.
Pour illustrer ce concept, considérons l'extrait de code suivant :
List<Integer> li = new ArrayList<Integer>(); List<Number> ln = li; // illegal ln.add(new Float(3.1415));
Ici, ln est alias avec li, ce qui signifie que ln fait référence à la même liste que li. Cependant, ln est déclaré comme List
Si la covariance était autorisée, le code ci-dessus serait légal, mais il violerait la sécurité des types. En attribuant une valeur List
Par conséquent, pour maintenir la sécurité des types, les génériques Java ne sont pas covariants. Cette limitation garantit que les sous-types ne peuvent pas être utilisés de manière interchangeable avec les supertypes dans des contextes génériques, évitant ainsi les erreurs de type potentielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!