generics中的“递归类型绑定”是什么意思?
我正在阅读有效Java [第27项]中关于generics的章节。
书中有这一段:
允许(尽管相对罕见)类型参数受某个涉及该类型参数本身的表达式的限制。 这就是所谓的递归类型绑定。
和这个:
// Using a recursive type bound to express mutual comparability public static <T extends Comparable> T max(List list) {...}
什么是递归类型绑定以及上面的代码如何帮助实现相互可比性?
什么是递归类型绑定
这:
请注意,类型参数T
也是超级接口Comparable
的签名的一部分。
以上代码如何帮助实现相互比较?
它确保您只能比较T
类型的对象。 没有类型绑定, Comparable
比较任何两个Object
。 使用类型绑定,编译器可以确保只比较两个类型为T
对象。
Angelika Langer撰写的Java Generics FAQ中有一个条目,其中解释了此类声明的详细信息: http : //www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#FAQ106