Javaジェネリックの「E」、「T」、「?」の違いは何ですか? 質問する

Javaジェネリックの「E」、「T」、「?」の違いは何ですか? 質問する

次のような Java コードに遭遇します。

public interface Foo<E> {}

public interface Bar<T> {}

public interface Zar<?> {}

上記の 3 つの違いは何ですか? また、Java ではこのタイプのクラスまたはインターフェース宣言を何と呼びますか?

ベストアンサー1

最初の 2 つには違いはありません。型パラメータ(EまたはT) に異なる名前を使用しているだけです。

3 番目は有効な宣言ではありません。型引数を提供するときに使用されるワイルドカード?として使用されます。たとえば、何らかの型のリストを参照することを意味しますが、それが何であるかはわかりません。List<?> foo = ...foo

これらはすべてジェネリックであり、非常に大きなトピックです。もちろん、他にも利用できるリソースはありますが、以下のリソースを通じてジェネリックについて学ぶことをお勧めします。

おすすめ記事