1.为什么要有泛型

泛型可以理解为标签,比如药店里会在某一类药品处贴上标签方便寻找。

定义:把元素的类型设计成一个参数,这个类型参数叫做泛型

比如List<String>这表明该List只能保存字符串类型的对象

那么使用或不使用泛型有什么区别呢?看下面的代码

@Test public void test(){ ArrayList list = new ArrayList(); //需求:存放学生的成绩 list.add(78); list.add(60); list.add(30); list.add(99); //问题1:类型不安全 list.add("Tom");

for (Object score : list){
    //问题2:强转时,可能出现ClassCastException
    int stuScore = (Integer) score;
    System.out.println(stuScore);
}

}

2.在集合中使用泛型 集合接口或集合类在JDK5.0时都修改为带泛型的结构。 在实例化集合类时,可以指明具体的泛型类型 指明完后,在集合类或接口中凡是定义类或接口时,内部结构(方法,构造器,属性等)使用到类的泛型的位置,都指定为实例化时的泛型类型 比如:add(E e) —>实例化以后:add(Integer e)

泛型的类型必须是类,不能是基本数据类型。需要用到基本数据类型的位置拿包装类替换 如果实例化时,没有指明泛型的类型,默认为Object类型

2.自定义泛型结构

自定义泛型结构有:泛型类、泛型接口;泛型方法