【发布时间】:2018-09-05 13:06:27
【问题描述】:
我了解<? super T> 代表T 的任何超类(任何级别的T 的父类)。但我真的很难想象这个通用绑定通配符的任何现实生活示例。
我明白<? super T>是什么意思,我也见过这个方法:
public class Collections {
public static <T> void copy(List<? super T> dest, List<? extends T> src) {
for (int i = 0; i < src.size(); i++)
dest.set(i, src.get(i));
}
}
我正在寻找一个现实生活用例的例子,在这个例子中可以使用这种结构,而不是解释它是什么。
【问题讨论】:
-
这不是重复的,一个非常有效的问题
-
我也不认为是重复的,他是在问具体情况,而不是背后的原理
-
这是我即将在这个关闭时写的答案的开始:我在某种程度上同意接近投票者:答案可以推导出来,来自stackoverflow.com/questions/2723397/… 的一些勤奋。但是,这个问题(以及这里的答案)侧重于技术原理。一个简单的现实示例说明使用
? super T的意义可能会有所帮助。 -
不要认为这应该作为重复关闭,因为作者要求的是真实世界的 OOP 模型,而不是深入解释 Java 中的继承如何工作。
-
这里的例子难道不是一个真实的用例吗?
标签: java generics inheritance super