黑马程序员技术交流社区
标题: 类型参数的类型推断 [打印本页]
作者: 杨静 时间: 2012-5-12 20:50
标题: 类型参数的类型推断
泛型的定义中有关类型参数的类型推断的部分内容不容易理解。特求解答。
作者: 金肖 时间: 2012-5-12 23:10
泛型(Generic):
Jdk1.5出现的安全机制。
好处:
1,将运行时期的问题ClassCastException转到了编译时期。
2,避免了强制转换的麻烦。
<> 什么时候用:当操作的引用型数据类型不确定时,就是用<>,将要操作的数据类型传入即可,
其实<>就是一个用于接收具体引用数据类型的参数范围;
在程序中,只要用到了带有<>的类或接口就要明确传入的具体引用数据类型
原理:整理下,
泛型技术是给编译器使用的技术,用于编译时期,保证运行时期的安全性。
运行时,会将泛型去掉,生成的Class文件中不带泛型的,这个称为泛型的擦出。
为什么会擦出呢:因为为了兼容运行的类的加载。
在jdk1.5后,使用泛型来接受类中要操作的数据类型。
当方法是静态时,不能访问类上定义的泛型。
只能将方法定义在方法上。
泛型接口:
泛型的通配符:? 未知类型。。。
<? extends E> E:接收E类型或是E的子类类型对象:上限 (一般存储元素的时候定义上限,因为这样取出都是按照上限来运算的,这样不会出现安全隐患)---------添加元素 只能使用addll(), 不能写具体对象 add();
写Demo演示
<? super E> E :接受E类型或是E类型的父类型对象,下限(通常对集合中的元素进行取出操作时,使用下限)________比较器
作者: 攻城狮 时间: 2012-5-12 23:37
金肖 发表于 2012-5-12 23:10
泛型(Generic):Jdk1.5出现的安全机制。好处:1,将运行时期的问题ClassCastException转到了编译时期。2 ...
他貌似问的是高新部分的泛型的类型推断···
作者: 金肖 时间: 2012-5-13 06:15
李南江 发表于 2012-5-12 23:37
他貌似问的是高新部分的泛型的类型推断···
嗯嗯,可能是我理解错了.....
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |