泛型是JavaSE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数,用在类、接口和方法的创建中。在没有泛型的情况下,通过对类型Oject的引用来实现参数的”任意化”,“任意化”的缺点是要做显式的强制类型转换。
1、泛型的类型参数只能是类类型(包括自定义类),不能是简单的类型
2、同一种泛型可以对应多个版本,因为参数类型是不确定的,不同版本的泛型类实例是不兼容的
3、泛型的类型参数可以有多个
4、泛型的参数类型可以使用extends语句,例如<T extends superclass>,习惯上称为“有界类型”
5、泛型的参数类型还可以是通配符类型。例如:Class<?>class Type = Class.forName(“java.lang.String”)
?:是通配符,代表任意类型
代码:
package com.jredu.oopch08;
import java.util.ArrayList;
import java.util.List;
public class Ch06 {
public static void main(String[] args) {
//应该存储相同类型的数据
//使用泛型
//1.约束了数据存储的类型
//2.使用get方法得到的数据类型是确定的
//泛型的语法:<Object>必须是引用数据类型,
//如果存储基本数据类型,就要转成相应的包装类
List<Integer> list=new ArrayList<>();
list.add(1);
list.add(2);
int a=list.get(0);
List<Student> list2=new ArrayList<>();
list2.add(new Student("王明"));
Student stu=list2.get(0);
}
}