在Generics一章,一句话引起了我的注意。对于以下声明List<? extends Shape>
,它说:
Note: It could be Shape itself, or some subclass; it need not literally extend Shape.
在此上下文中,not literally 是什么意思?
最佳答案
这意味着该类没有扩展 Shape
,即 Shape
的直接子类。它也可以是 Shape
本身,也可以是 Shape
的间接子类,或者 Shape
可以是一个接口(interface)
类实现
。作者试图表达的是关键字 extends
的使用是出于方便(向语言添加新关键字是昂贵的)和熟悉,它并不意味着 not可以使用的每种类型都必须在其定义中完全字符串extends Shape
。
换句话说:作者literally的意思是“literally”与“literally”。
关于Java 泛型 : Understanding Bounded Wildcards,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47207096/