我正在阅读 Java 完整参考第 7 版,它说 Java 泛型中的下限是排他性的,但我在这里发现了相反的情况(它说它是包容性的。)是因为 SE 6 与 SE 7 不同吗?
编辑:Java the Complete Reference 7th edition 讨论了SE 6。
我正在阅读 Java 完整参考第 7 版,它说 Java 泛型中的下限是排他性的,但我在这里发现了相反的情况(它说它是包容性的。)是因为 SE 6 与 SE 7 不同吗?
编辑:Java the Complete Reference 7th edition 讨论了SE 6。
界限是包容的。
自己尝试很容易:
import java.util.*;
import java.lang.*;
class Main {
public static void main (String[] args) throws java.lang.Exception {
addNumbers(new ArrayList<Integer>());
}
public static void addNumbers(List<? super Integer> list) {
for (int i = 1; i <= 10; i++) {
list.add(i);
}
}
}
在规范中,他们在参数化中使用“子类型”一词来表示包容性子类型。在第 4.10 节中,它定义短语“适当的子类型/适当的超类型”表示独占的子类型/超类型,而“子类型/超类型”表示包含的子类型/超类型。