Maison  >  Article  >  Java  >  Pourquoi ne puis-je pas créer un tableau de LinkedLists en Java et comment y remédier ?

Pourquoi ne puis-je pas créer un tableau de LinkedLists en Java et comment y remédier ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 07:31:29908parcourir

Why Can't I Create an Array of LinkedLists in Java and How Do I Fix It?

Création d'un tableau de LinkedLists en Java

En Java, des questions se posent lorsque l'on tente de créer un tableau de LinkedLists. Lors de la déclaration d'un tableau comme private LinkedList[] myMatrix, on s'attend à ce qu'un tableau puisse être alloué avec la ligne suivante : myMatrix = new LinkedList[numRows]. Cependant, cette stratégie entraîne une erreur indiquant qu'un tableau générique de LinkedList ne peut pas être créé.

Cela soulève deux problèmes :

  1. Quelle est l'erreur à l'origine de cette situation ?
  2. Pourquoi le type LinkedList est-il autorisé dans la déclaration de tableau s'il ne peut pas être créé ?

Il est important de noter qu'IntegerNode est une classe définie par l'utilisateur dans ce scénario.

Résolution

La solution à ce problème est de convertir le type dans la déclaration pour permettre la création du tableau. La déclaration révisée devrait être :

myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];

Explication

En Java, les tableaux génériques ne sont pas directement pris en charge. Au lieu de cela, des types bruts (c'est-à-dire des types sans paramètres de type) sont utilisés. La conversion du type permet au compilateur de déduire le type générique correct pour le tableau.

Ainsi, le type LinkedList[] dans la déclaration est autorisé, même s'il ne peut pas être créé directement. En effet, le compilateur le considère comme un type brut, laissant au programmeur le soin de le convertir en type générique spécifique nécessaire.

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!

Déclaration:
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