java-泛型介绍

介绍

泛型是jdk5的时候出现的一种特性,可以在编译阶段约束操作的数据结构,并进行检查。

泛型只能用引用数据类型,如果是基本数据类型得使用包装类。
如ArrayList中的toArray(T[] a),是不可用转换为int[]的只能转换为Integer[]

好处

统一了数据类型,把运行时期的问题提前到了编译时期,避免强制转换可能出现异常

不过java的泛型是伪泛型,在编译成字节码后会进行编译的擦除

为了jdk5以前软件的兼容

使用

可以写在类、接口上,也可以写在方法上
确定泛型后,可以传递数据的子类。但是不能

修饰符 class 类名<类型>{
}

在这里插入图片描述

方法

在方法定义的只能在本方法使用泛型

修饰符 <T> 返回值类型 方法名(<T> a){
}

在这里插入图片描述

接口

在这里插入图片描述
实现的泛型接口的实现类,可以明确类型也可以不明确
明确类型的
在这里插入图片描述
也可以不明确
在这里插入图片描述

继承

泛型(上面的类接口和方法)是没有继承性的,数据是可以的。
如果一个方法调用了ArrayList< Object>参数
则是不可用ArrayList< Integer>。
而ArrayList< Object>是可以加入Integer数据的

通配符

?代表所有类型
? extend/super E E和其子类/父类
不过一旦定好了类就不可用加其他类型了,即使是子类。

你可能感兴趣的:(java基础,java,jvm,开发语言)