用泛型的原因
早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换(向下转型)的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。jdk5之后,推出的语法。
什么是泛型
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。
参数化类型,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式,然后在使用/调用时传入具体的 类型。
Java 泛型(generics)是 JDK 5 中引入的一个新语法, 泛型提供了编译时类型安全检测机制,泛型的好处就是在编译的时候能够检查类型安全。
泛型类
泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。
从泛型类派生子类
泛型接口
泛型通配符
类型通配符一般是使用"?"代替具体的类型实参。
类型擦除
泛型是Java 1.5版本才引进的概念,在这之前是没有泛型的,但是,泛型代码能够很好地和之前版本的代码兼容。那是因为,泛到信息只存在于代码编译阶段,在进入JVM之前,与泛型相关的信息会被擦除掉,我们称之为一类型擦除。
泛型类被类型擦除后,相应的类型就被替换成 Object 类型或者上限类型。