ホームページ  >  記事  >  Java  >  Java で LinkedList の配列を作成する方法: 型消去を克服する?

Java で LinkedList の配列を作成する方法: 型消去を克服する?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 02:43:02835ブラウズ

 How to Create an Array of LinkedLists in Java: Overcoming Type Erasure?

Java での LinkedList の配列: 作成と落とし穴

Java で LinkedList の配列を作成しようとすると、開発者は次のようなエラーが発生する場合があります。 LinkedList の汎用配列は許可されていないことを示します。この問題は、言語の型消去が原因で発生します。解決策には、作成時に配列型をキャストする必要があります。

提供されたコードでは、配列 myMatrix の private LinkedList[] としての宣言は有効です。 Java では、宣言内でジェネリック型を使用できます。ただし、インスタンス化中に、コンパイラは具象クラスの配列 (ここでは LinkedList) を作成できないことに気づきます。

この問題を解決するには、コードは作成中に配列型をジェネリック型にキャストする必要があります。正しい構文は次のとおりです。

<code class="java">myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];</code>

ジェネリック型 (この場合は LinkedList) にキャストすることにより、配列が任意の型の LinkedList を保持できることがコンパイラーに通知されます。これにより、インスタンス化が正常に完了します。

Java での型の消去とは、配列に格納されている特定の型のオブジェクトが実行時に失われることを意味することに注意してください。これは、配列がさまざまなタイプの LinkedList を保持できるが、それらを区別するためのタイプ情報がないことを意味します。

以上がJava で LinkedList の配列を作成する方法: 型消去を克服する?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。