作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如我有一个类
class Element {}
我有一些类正在扩展这个类
class ExtraElement extends Element {}
那么这些陈述是否相同?
List<Element> list & List<? extends Element>
因为据我了解通配符
定义了类族。在这两个语句中,我可以传递扩展类 Element
的任何元素,因此基本上是 Element
类的家族。
最佳答案
不,它们不一样。
List<? extends Element>
可能是List<ExtraElement>
或者它可能是 List<Element>
,但编译器无法知道它是哪一个。
如果是List<ExtraElement>
,您不能添加 SomeNonExtraElement
例如,添加到列表中(但您可以将 SomeNonExtraElement
添加到 List<Element>
中)。
为了强制执行此操作,编译器不会让您向 List<? extends Something>
添加任何内容 .
关于java - 不明白 <T> 和 <?> 的一些内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26009879/
我是一名优秀的程序员,十分优秀!