Introduction
Tableaux génériques, où les éléments du tableau partagent un paramètre de type commun, présente un défi unique en Java en raison de l'interaction entre les génériques et le comportement covariant des tableaux.
Question
Pouvons-nous créer un tableau de génériques où le le type générique s'étend Comparable ? Tente de convertir un tableau Object en un tableau générique qui étend les problèmes de visage comparable, soulevant la question suivante : Existe-t-il une solution de contournement ?
Réponse
Génériques et Tableaux : un casse-tête de compatibilité
Les génériques et les tableaux ont des manières fondamentalement différentes de gérer les types :
En raison de cette inadéquation, la création d'un tableau de types génériques les types qui étendent une classe spécifique ne sont pas possibles.
Array.newInstance() : une solution de contournement
Une solution potentielle consiste à utiliser la méthode Array.newInstance() :
<code class="java">private Comparable[] hashtable; ... hashtable = (Comparable[])Array.newInstance(Comparable.class, tableSize);</code>
Cette approche permet de créer un tableau du supertype du type générique (Comparable dans ce cas), mais il est important de noter que ce tableau n'est pas du type générique souhaité.
Pourquoi ne pas utiliser des tableaux avec des génériques ?
Bien qu'il existe des solutions de contournement, l'utilisation de tableaux avec des génériques est généralement déconseillée en raison de :
Alternative : ArrayList
Une option plus appropriée consiste à utiliser ArrayList , qui fournit un moyen efficace et sécurisé de gérer des collections d'objets génériques. Les ArrayLists offrent la flexibilité des génériques et évitent les pièges potentiels associés aux tableaux et aux génériques.
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!