当把一个对象丢进集合中后,集合就会忘记这个对象的数据类型,再次取出时变成了Object,有可能出现异常。
public class ListErr {
public static void main(String[] args) {
List strList = new ArrayList();
strList.add("a");
strList.add("b");
strList.add(5);
// 企图把Interger转成String,导致异常
strList.forEach(str -> Symtem.out.println(((String)str).length()));
}
}
所以对集合的类型需要进行规范。
菱形语法
在Java7之前,构造器的后面也必须带泛型
List<String> strList = new ArrayList<String>();
从Java7之后可以简化为
List<String> strList = new ArrayList<>();
在类、接口中定义
所谓泛型,就是允许在定义类、接口和方法时使用类型形参,如下所示
public interface List<E> {
void add(E x);
Iterator<E> interator();
}
public interface Iterator<E> {
E next();
boolean hasNext();
}
当使用List< String>的时候,等同于如下接口
public interface ListString extends List {
void add(String x);
Iterator<String> interator();
}
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/13507.html