在 Java 类型参数中,是否仅表示严格的子类型?还是E也足够了?
问问题
4224 次
3 回答
7
这并不严格;E
就足够了。
于 2010-06-28T22:47:30.360 回答
6
是的,super
并且extends
分别给出了包容性的下限和上限。
这是Angelika Langer 的泛型常见问题解答中的引述:
什么是有界通配符?
具有上限的通配符看起来像
? extends Type
并代表所有类型的家族,它们是 的子类型Type
,类型Type
被包括在内。Type
称为上界。具有下限的通配符看起来像
? super Type
并代表所有类型的家族,它们是 的超类型Type
,类型Type
被包括在内。Type
称为下界。
于 2010-06-29T07:51:27.680 回答
1
List<? extends Animal> animalList=new List<Dog>();
List<? extends Animal> animalList=new List<Animal>();
这两行都编译没有任何错误。任何将列表作为参数的函数都理解列表中的对象是 E 类型或 E 的子类型。
于 2010-06-29T05:12:14.943 回答