ホームページ  >  記事  >  Java  >  Java でジェネリック配列を作成できないのはなぜですか?

Java でジェネリック配列を作成できないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 10:39:03862ブラウズ

Why Can't You Create Generic Arrays in Java?

ジェネリック配列作成エラー: 代替手段の探索

質問に例示されているように、Java でジェネリック クラスの配列を作成しようとすると、必然的にエラーが発生します。 Java ではこの機能がサポートされていないため、代替アプローチが必要です。

コレクションの使用を検討する

配列の代わりにコレクションを利用すると、この制約に効果的に対処できます。たとえば、ArrayList はオブジェクトのリストを保存できるため、データの管理に柔軟性が得られます。

別のオプション: 補助クラス

もう 1 つの実行可能な解決策には、補助クラスの作成が含まれます。クラス。たとえば、MyObjectArrayList という名前のクラスは ArrayList を拡張できます。その後、MyObjectArrayList インスタンスの配列を作成して、問題を回避できます。

禁止事項を理解する

Java におけるジェネリック配列の禁止は、言語の設計に深く根ざしています。 。次の例は、この制限が正当化される潜在的なシナリオを示しています。

<code class="java">List<String>[] lsa = new List<String>[10]; // illegal
Object[] oa = lsa;  // OK because List<String> is a subtype of Object
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[0] = li; 
String s = lsa[0].get(0);</code>

この制限がないと、そのようなコードは、文字列用の配列に整数のリストを割り当てるなど、予期しない動作を引き起こす可能性があります。

以上がJava でジェネリック配列を作成できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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