[英]Java Generics : Understanding Bounded Wildcards
在“ 泛型”一章中,一句话引起了我的注意。 对于以下声明List<? extends Shape>
List<? extends Shape>
,它说:
注意:它可以是Shape本身,也可以是某些子类。 它不需要从字面上扩展Shape 。
在此上下文中的字面意思是什么?
Shape
可以是接口, <? extends Shape>
<? extends Shape>
可以是实现Shape
接口的类的实例。
这意味着该类不必 extend Shape
,即作为直接子Shape
。 它也可以Shape
自身,也可以是间接子Shape
,或Shape
可以是一个interface
,其类implements
。 什么是作者试图传达的是关键字extends
用于进出方便(添加新的关键字的语言是昂贵的)和熟悉,这并不意味着每一个可以使用的类型都有一个完全相同的字符串extends Shape
在其定义中。
换句话说:作者的字面意思是“字面”和“字面”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.