泛型相关知识 泛型泛型类泛型方法泛型--泛型的出现就是为了统一集合中的数据类型泛型是JDK5中引入的特性可以在编译阶段约束操作的数据类型并进行检查在jdk5之前没有泛型的时候集合里可以存任意类型的数据但是都会视为object类型取出的时候都会变成object原理是通过多态的方式取出这样的缺点是无法使用该类的特有功能多态的弊端无法使用子类的特有功能如存入的时候是字符串取出的时候是object类型无法使用字符串中的获取字符串长度的方法强转的时候很麻烦容易出现类型转换异常java中的泛型是伪泛型执行步骤1.在存储的时候查看是不是指定类型的数据2.在存储的过程中还是按照object类型来存储3.在取出的时候强转为指定类型泛型的细节1.泛型不能使用基本数据类型因为泛型在存储的时候还是要转成object类型来存储的如果是基本数据类型就没办法转成object类了2.指定泛型的具体类型之后传递数据时可以传入该类类型或者其子类类型但是一般很少这样写3.如果不写泛型类型默认为object泛型类泛型在某个变量的数据类型不确定的时候就可以定义带有泛型的类import java.util.Arrays; public class MyArrayListR { /** * 手搓一个集合源码 */ //集合在存储的时候都是存储为Object Object[] objects; int index 0; //集合在取出的时候才会强转为泛型指定的类型 public R get(int index){ return (R)objects[index]; } public R add(R value){ objects[index] value; index; return value; } // 无参构造初始化数组 public MyArrayList() { objects new Object[10]; // 关键给数组分配内存空间 } Override public String toString() { return MyArrayList{ objects Arrays.toString(objects) , index index }; } }package ArrayList; public class TestList { public static void main(String[] args) { MyArrayListString myArrayList new MyArrayList(); myArrayList.add(aaa); System.out.println(myArrayList); } }泛型方法泛型定义泛型定义的两种方法1.写在类名后面2.写在方法上的标识符后面这样就定义好了泛型泛型接口泛型的通配符和综合练习