一尘不染

“ E”,“ T”和“ E”有什么区别?Java泛型?

java

我遇到了像这样的Java代码:

public interface Foo<E> {}

public interface Bar<T> {}

public interface Zar<?> {}

以上三种之间的区别是什么?它们在Java中如何称呼这种类型的类或接口声明?


阅读 539

收藏
2020-09-08

共1个答案

一尘不染

好吧,前两个没有什么区别-它们只是为 type参数ET)使用了不同的名称。

第三个不是有效的声明- ?用作提供类型实 时使用的 通配符 ,例如,意味着引用某种类型的列表,但我们不知道是什么。 __List<?> foo = ...``foo

所有这些都是 泛型 ,这是一个很大的话题。您可能希望通过以下资源了解它,尽管当然还有更多可用的方法:

2020-09-08