首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java泛型小结(二)

2012-08-21 
Java泛型总结(二)类型变量的限定一个场景,class MyClass {? ? ?public static T T get(T[] a){? ? ? ? ?

Java泛型总结(二)

类型变量的限定一个场景,class MyClass {? ? ?public static <T> T get(T[] a){? ? ? ? ? ……? ? ? ? ? a[0].compareTo(.... // 数组a的元素调用compareTo方法进行比较? ? ? ? ? ……? ? ?}}问题出现在这里,我们没办法保证T类型拥有方法compareTo;但是,我们有一个办法解决,那就是让T实现Comparable接口。现在,根据现有的api,我们可以使用T extends?Comparable来达到限定的目的。这时候,有了这样的形式:<T?extends?Bounding Type>,表示T应该是绑定类型(Bounding Type)的子类型。T和绑定类型可以是类或者接口。当然,可以有多个限定类型,例如:T extends?Comparable & Serializable 用&符号分隔开
class?MyArray {????public?static?<T?extends?Comparable> T min(T[] array) {??????? T min = array[0];????????for?(T element : array) {????????????if?(min.compareTo(element) > 0) {??????????????? min = element;??????????? }??????? }????????return?min;??? }}
因为有T?extends?Comparable的缘故,这里数组的元素就能够调用compareTo方法,不会产生编译错误。

热点排行