读书人

Java泛型小结(二)

发布时间: 2012-08-21 13:00:21 作者: rapoo

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方法,不会产生编译错误。

读书人网 >编程

热点推荐