Maison > Java > javaDidacticiel > le corps du texte

Pourquoi ne puis-je pas créer un tableau de LinkedLists en Java ?

Susan Sarandon
Libérer: 2024-10-27 01:42:03
original
912 Les gens l'ont consulté

Why Can't I Create an Array of LinkedLists in Java?

Impossible d'instancier un tableau LinkedList en Java

Dans ce fil de discussion, le développeur rencontre un défi en tentant de créer un tableau de LinkedLists en Java pour stocker des valeurs dans une matrice clairsemée. Le message d'erreur « Impossible de créer un tableau générique de LinkedList » soulève deux questions cruciales :

  1. Quelle est la cause première de cette erreur ?

    La cause première réside dans la restriction de Java interdisant la création de tableaux génériques de types non primitifs. Les génériques sont des mécanismes de type sécurisé introduits dans Java 5 pour empêcher l'exécution de ClassCastException. Lors de la déclaration d'un tableau de types génériques, comme LinkedList, le compilateur nécessite une conversion de type explicite pour informer Java du type spécifique de tableau en cours de création.

  2. Pourquoi le type est-il acceptable dans la déclaration du tableau mais pas dans la création ?

    La déclaration du tableau utilise un type brut, LinkedList[], qui ne spécifie pas le paramètre de type générique. Les types bruts ne sont pas typés et n’appliquent pas la sécurité des types. Cependant, lors de l'instanciation du tableau, le compilateur nécessite qu'un paramètre de type spécifique soit fourni, c'est là que l'erreur se produit.

Solution :

Pour résoudre ce problème, un transtypage doit être effectué. Le code corrigé devrait ressembler à ceci :

myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];
Copier après la connexion

Le cast (LinkedList[]) informe explicitement le compilateur que le tableau en cours de création est un tableau de LinkedList contenant des éléments IntegerNode. Cela permet au tableau générique d'être correctement instancié.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!