ホームページ >Java >&#&チュートリアル >Java ジェネリック: ` の違いは何ですか? T` と `? を拡張します。スーパー T` ワイルドカード?

Java ジェネリック: ` の違いは何ですか? T` と `? を拡張します。スーパー T` ワイルドカード?

DDD
DDDオリジナル
2024-12-10 06:11:17805ブラウズ

Java Generics: What's the Difference Between `? extends T` and `? super T` Wildcards?

Java ジェネリック: ワイルドカードの探索

この記事では、Java のジェネリック ワイルドカードの複雑さを掘り下げ、次の 2 つの基本的な質問に対処します。

  1. 有界と無界ワイルドカード

ワイルドカードは、疑問符 (?) とそれに続く境界で表されます。境界付きワイルドカードはジェネリックの型を制限しますが、境界なしワイルドカードは制限しません。

  • 境界付きワイルドカード:

    • リスト: これは、リストが T の任意のサブタイプを保持できることを示します。これは上限ワイルドカードであり、T またはそのサブクラスのいずれかを拡張する型を制限することを意味します。
    • List super T>: これは、リストが T の任意のスーパータイプを保持できることを示します。これは下限ワイルドカードであり、型が T またはその親クラスの祖先に制限されることを意味します。
を拡張します。そして
  • リスト: この型は、型 T または T のサブクラスのオブジェクトを保持できるリストを表します。たとえば、型 Dog の要素を含むリストは、この型パラメーターを持つリストに割り当てることができます。

リスト super T>: この型は、型 T または T のスーパークラスのオブジェクトを保持できるリストを表します。たとえば、型 Animal の要素を含むリストは、この型パラメーターを持つリストに割り当てることができます。

さらなる資料
  • Java ジェネリックスとワイルドカードのより包括的な説明については、次を参照してください。リソース:
  • [ワイルドカード](https://docs.oracle.com/javase/tutorial/java/generics/wildcards.html)
[もっと楽しくワイルドカード](https://docs.oracle.com/javase/tutorial/extra/generics/morefunwithwildcards.html)

以上がJava ジェネリック: ` の違いは何ですか? T` と `? を拡張します。スーパー T` ワイルドカード?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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