Java泛型中的“超级”和“扩展”有什么区别
我正在尝试学习Java泛型。我不清楚你什么时候会使用,什么时候会使用。这些事情中的每一件对T意味着什么?假设我有和,这些是什么意思?<T extends Foo>
<T super Foo>
<T extends Comparable>
<T super Comparable>
我已经在 sun.com 上阅读了几个教程,但我仍然迷路了。有人可以用例子来说明吗?
我正在尝试学习Java泛型。我不清楚你什么时候会使用,什么时候会使用。这些事情中的每一件对T意味着什么?假设我有和,这些是什么意思?<T extends Foo>
<T super Foo>
<T extends Comparable>
<T super Comparable>
我已经在 sun.com 上阅读了几个教程,但我仍然迷路了。有人可以用例子来说明吗?
这取决于它允许的继承层次结构的方式。假设您有一个类“子级”,它继承自“父级”,继承自“祖父母”。
<T extends Parent>
接受父项或子项,同时接受父项或父项。<T super Parent>
有三种类型的通配符:
? extends Type
:表示类型的子类型家族。这是最有用的通配符。Type
? super Type
:表示类型的超类型家族。Type
?
:表示所有类型或任何类型的集合。