1. ホーム

[解決済み】Javaジェネリックの'E'、'T'、'?'の違いは?

2022-03-30 17:09:13

質問

このようなJavaのコードに出会いました。

public interface Foo<E> {}

public interface Bar<T> {}

public interface Zar<?> {}

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

どのように解決するのですか?

最初の2つには何の違いもありません。 型パラメータ ( E または T ).

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

これらはすべて ジェネリックス は、かなり大きなトピックです。もちろん、もっと多くの資料がありますが、以下の資料で学ぶとよいでしょう。