List list = new ArrayList();
这是未引入参数化类型时的写法,list集合中可以存储不同类型的元素,如此便有了安全隐患,编译器不能保证你取值时的转型(拆箱)一定正确。
jdk1.5引入了参数化类型(泛型)之后,写法变为。
List<类型(例如String)> list = new ArrayList<String>();
这样的话,list中只能存储String类型的元素,编译器在编译时便会验证list中的元素是否全为String类型,否则编译错误。如此一来便不存在安全隐患,读取数据时也不需要自己进行拆箱,编译器会判断其元素类型为String.
参数化类型就是一个编译器可以自动定制作用于特定类型上的类,简单的说就是,原本集合中用来处理的通用类型为Object,而使用了参数化类型后,编译器会自动的将Object参数的类型修改为你传递给它的参数化类型,例如此例运行时内存中list类中的Object属性,全被替换为String的。