Maison > Java > javaDidacticiel > Pourquoi les méthodes `remove()` des collections Java ne sont-elles pas génériques ?

Pourquoi les méthodes `remove()` des collections Java ne sont-elles pas génériques ?

Susan Sarandon
Libérer: 2024-12-11 09:22:10
original
560 Les gens l'ont consulté

Why Aren't Java Collections' `remove()` Methods Generic?

Pourquoi les méthodes Remove des collections Java ne sont-elles pas génériques ?

Le framework Java Collections fournit une méthode Remove() pour les collections et les cartes. Cependant, cette méthode n’est pas générique, ce qui signifie qu’elle accepte un objet comme argument plutôt qu’un paramètre de type E. Cette décision a soulevé des questions sur les avantages potentiels de rendre Remove() générique.

Un argument en faveur de rendre Remove() générique est que cela pourrait empêcher les erreurs de compilation lors d'une tentative accidentelle de suppression d'un type incompatible d'une collection. . Par exemple, si une collection est accidentellement passé un Set, cela entraînerait une erreur de compilation plutôt qu'un problème de débogage plus tard.

Cependant, la raison pour laquelle Remove() n'est pas générique est principalement parce qu'il permet le suppression d'objets basée sur l'égalité plutôt que sur une vérification de type stricte. Selon la spécification de la méthode remove(), l'élément à supprimer est identifié comme un objet e tel que (o==null ? e==null : o.equals(e)) est vrai. Cela permet une flexibilité dans la suppression des éléments, car l'objet supprimé n'a pas besoin d'être du même type que l'objet passé à la méthode remove().

À titre d'exemple, il est possible d'avoir un Map. Lors de l'appel de remove() avec une LinkedList comme argument, il doit supprimer la clé qui est une liste avec le même contenu, même s'il s'agit d'une implémentation différente de List. Cela ne serait pas possible si Remove() était générique et limité à un seul paramètre de type.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal