繁体   English   中英

在Java类型参数中,确实如此 <? extends E> 仅指严格的亚型? 还是E也足够了?

[英]In Java type arguments, does <? extends E> mean strictly subtypes only? or would E also suffice?

在Java类型参数中,是否仅表示严格的子类型? 还是E也足够了?

这不严格; E就足够了。

是的, superextends给出了包含上下限。

以下是Angelika Langer的Generics FAQ的引用:

什么是有界通配符?

带上限的通配符看起来像? extends Type ? extends Type和代表所有类型的系列,它们是TypeType包括 Type Type被称为上限

下限的通配符看起来像? super Type ? super Type和代表所有类型的类型的Type ,类型包括 Type Type称为下限

List<? extends Animal> animalList=new List<Dog>();
List<? extends Animal> animalList=new List<Animal>();

两行都编译没有任何错误。 将列表作为参数的任何函数都能理解列表中的对象是E类型还是E的子类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM