类型变量的限定
一个场景,
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方法,不会产生编译错误。
分享到:
相关推荐
很好的Java泛型的总结,看完之后你一定会知道java泛型的底层机制,你一定会学会Java泛型!
深入理解java泛型,包括类名泛型的定义,方法泛型定义,泛型的返回
• 全面总结Ja• 全面总结Java泛型v• 全面总结Ja• 全面总结Java泛型va泛型a泛型• 全面• 全面总结Java泛型• 全面总结Java泛型总结Java泛• • 全面总结Java泛型全面总结Java泛型型• • 全面总结Java泛型全面...
思维导图之Java泛型详解
NULL 博文链接:https://fantaxy025025.iteye.com/blog/2213815
java 泛型详解 实例 class Point class Notepad,V>{ // 此处指定了两个泛型类型 } 通配符、受限泛型、泛型无法向上转型、泛型接口、泛型方法、通过泛型方法返回泛型类型实例、使用泛型统一传入的参数类型、泛型数组...
类型推断:在Java 7及以上版本中,可以使用varargs和钻石操作符来推断类型参数。例如,List[] lists = Arrays.asList(new List() {{ add("hello"); add("world"); }}); 泛型边界:可以使用泛型边界来限制类型参数的...
全面总结Java泛型--实例
NULL 博文链接:https://qiemengdao.iteye.com/blog/1525624
关于java泛型的总结: 从入门介绍到项目使用的实际经验归纳总结得出! 从jdk5到jdk8!
自己总结的java泛型的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者
本文主要介绍了Java泛型的使用以及类型擦除相关的问题。具有很好的参考价值。下面跟着小编一起来看下吧
数组与泛型的关系还是有点复杂的,Java 中不允许直接创建泛型数组。本文分析了其中原因并且总结了一些创建泛型数组的方式。具有很好的参考价值。下面跟着小编一起来看下吧
主要介绍了Java 泛型的相关资料,并附简单实例代码,需要的朋友可以参考下
主要介绍了Java中泛型总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JAVA泛型 28 类型擦除 28 实例分析 29 通配符与上下界 30 类型系统 31 开发自己的泛型类 32 最佳实践 32 参考资料 33 目录 3 JAVA注解 34 使用注解 34 开发注解 35 处理注解 35 实例分析 38 参考资料 39 JAVA反射与...
本篇文章介绍了,在java中泛型的总结分析。需要的朋友参考下
Java泛型简明教程 泛型是Java SE 5.0中引入的一项特征,自从这项语言特征出现多年来,我相信,几乎所有的Java程序员...这就是为什么我想使用一种最简单的形式来总结一下程序员需要知道的关于Java泛型的最基本的知识。
在泛型的使用中,还有个重要的东西叫通配符,本文介绍通配符的使用。具有很好的参考价值。下面跟着小编一起来看下吧
下面小编就为大家带来一篇Java总结篇系列:Java泛型详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧