一、泛型
定义:泛型,即“参数化类型”。通俗解释就是,将原来的级具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
泛型的本质就是为了参数化类型,在不断创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。
意思就是在泛型的使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别称为泛型类、泛型接口、泛型方法。
二、语法
//标准写法
List<String> list=new ArrayList<String>();
//jdk1.7之后提供类型推断
List<String> list=new ArryList<>();
三、作用
1、数据安全
List<Double> lis=new ArrayList();
//要求集合中数据只能放Double,不允许其他类型存放进来
2、防止类型准换时出错
ArrayList<String> list = new ArrayList<String>();
list.add("大家好");
String string= list.get(0);
//有泛型使用的时候
//没有泛型使用的时候
AllayList list = new ArrayList();
list.add("大家好");
list.add(0);
list.add(new Date());
list.get(0);
list.get(1);
说明:当我们从集合list中取出数据的时候就会涉及到类型转换问题,因为编译器不能明确你要取什么类型。泛型的使用就解决了元素的不确定性——参数类型String的集合不允许你存入别的类型的元素,出去数据的时候也就不许类型转换了
四、特性
泛型只在编译阶段有效,:泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。
五、泛型的使用
泛型的三种使用方式:泛型类、泛型接口、泛型方法