- 泛型:
有泛型技术之前
容器在取出对象时,需要用到对象的特有内容时,需要向下转型,但是对象的内容不一致,导致了向下转型发生了ClassCastException。
为了运行时期不出现类型异常。可以在定义容器时,就明确容器中元素的具体类型。
这样,编译器在编译时,就可以对集合中存储的对象类型进行检查。
一旦发现类型不匹配,就编译失败。
好处:
1、将运行时期的问题转移到了便宜时期,可以更好的让程序员发现问题并解决问题。
2、避免了向下转型的麻烦
总结:泛型就是应用在编译时期的一项安全机制。
泛型的擦除:编译器通过泛型对元素类型进行检查,只要检查通过,就会生成class文件,但在class文件中,就将泛型标识去掉了。
泛型的表现:泛型技术在集合框架中应用的范围很大。
容器在不明确操作元素的类型的情况下,对外提供了一个参数<>。泛型类
在类定义时,就明确参数。由使用该类的调用者,来传递具体的类型。泛型方法
静态方法无法访问类上定义的泛型。
静态方法需要定义泛型,泛型只能定义在方法上。通配符 <?>表示接受所有类型
限定
泛型上限 <? extends E> 表示接受所有E的导出类和E类型,存入的时候用上限
泛型下限 <? super E>表示接受所有E的父类型和E类型,取出的时候用下限