集合(3)—泛型
- 定义
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 - 为什莫需要泛型
当我们将一个对象放入集合中,集合不会记住此对象的类型,当再次从集合中取出此对象时,改对象的编译类型变成了Object类型,但其运行时类型任然为其本身类型。
因此,取出集合元素时需要人为的强制类型转化到具体的目标类型,且很容易出现“java.lang.ClassCastException”异常。
也就是是说什么类型的对象都可以添加到集合中,但是取出来的时候可能会因为类型转换反生异常,所以就用泛型规定那种类型的对象可以添加到集合中去。
3. 语法
List st = new ArrayList();
其他原样
这时再获取元素时不需要强制转换
System.out.println(“单个:”+coList.get(0).id);
**注意:
1.泛型则是规定了某个集合只可以存放特定类型或者其子类型的对象,会在编译期间进行类型检查,
可以直接按指定类型获取集合元素,取出时不需要在强制转换。
2.泛型集合中除了能够存入泛型类型的对象实例,还可以存入泛型的子类型的对象实例
3.泛型集合中不能使用基本数据类型,但可以使用基本数据类型的包装类