泛型(Generic): Jdk1.5出现的安全机制。 好处: 1,将运行时期的问题ClassCastException转到了编译时期。 2,避免了强制转换的麻烦。 <> 什么时候用:当操作的引用型数据类型不确定时,就是用<>,将要操作的数据类型传入即可, 其实<>就是一个用于接收具体引用数据类型的参数范围; 在程序中,只要用到了带有<>的类或接口就要明确传入的具体引用数据类型 原理:整理下, 泛型技术是给编译器使用的技术,用于编译时期,保证运行时期的安全性。 运行时,会将泛型去掉,生成的Class文件中不带泛型的,这个称为泛型的擦出。 为什么会擦出呢:因为为了兼容运行的类的加载。 在jdk1.5后,使用泛型来接受类中要操作的数据类型。 当方法是静态时,不能访问类上定义的泛型。 只能将方法定义在方法上。 泛型接口: 泛型的通配符:? 未知类型。。。 <? extends E> E:接收E类型或是E的子类类型对象:上限 (一般存储元素的时候定义上限,因为这样取出都是按照上限来运算的,这样不会出现安全隐患)---------添加元素 只能使用addll(), 不能写具体对象 add(); 写Demo演示 <? super E> E :接受E类型或是E类型的父类型对象,下限(通常对集合中的元素进行取出操作时,使用下限)________比较器 |