ホームページ >Java >&#&チュートリアル >データを「リスト」に追加できないのはなぜですか

データを「リスト」に追加できないのはなぜですか

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-03 10:46:39214ブラウズ

Why Can't I Add Data to a `List

リストにデータを追加します

List に要素を追加しようとするときに直面するジレンマ を拡張します。これはワイルドカード宣言の制約に起因します。このような宣言では、変数は型ファミリーの任意の値を保持できます。これは、次の代入が有効であることを意味します:

List<? extends Number> foo3 = new ArrayList<Number>();
List<? extends Number> foo3 = new ArrayList<Integer>(); 
List<? extends Number> foo3 = new ArrayList<Double&gt(); 

ただし、リストの特定のタイプが不明であるため、このワイルドカード宣言はリストに要素を直接追加することを禁止します。たとえば、整数を foo3 に追加することは、ArrayList である可能性があるため許可されません。

対照的に、ワイルドカード宣言 List

実際的な意味を説明するために、次の Collections.copy() 呼び出しは、ワイルドカードを使用して、関連するリスト間でデータを柔軟にコピーできる方法を示しています。 type:

Collections.copy(new ArrayList<Number>(), new ArrayList<Number>());
Collections.copy(new ArrayList<Number>(), new ArrayList<Integer>());
Collections.copy(new ArrayList<Object>(), new ArrayList<Number>());
Collections.copy(new ArrayList<Object>(), new ArrayList<Double>());

結論として、List<にデータを追加します? Number> を拡張します。 List

以上がデータを「リスト」に追加できないのはなぜですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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