/** List List<Object> List<Integer> List<?>之间的区别
* 集合之间的转换和数组转换之间的差异
* @param args
*/
public static void main(String[] args) {
List list1 = new ArrayList();
list1.add(new Object());
list1.add(2);
list1.add("不指定泛型的情况下,可以添加任意类型的元素");
List<Object> list2 = list1;//不指定泛型的list1可以转换成任意泛型类型的集合,下面用Integer泛型试试
list2.add(new Object());
list2.add(3);
list2.add("指定Object泛型,也可以添加任意类型的元素,看上去和list1没有区别");
List<Integer> list3 = list1;//在jdk1.5之前,集合可以不适用泛型,但这样会带来隐患,使用泛型后,为了与之前无泛型的集合兼容,所以这样的转换是允许的
//List<Integer> list4 = list2;//这样的转换时不允许的,这就是无泛型集合与<Object>泛型集合的区别
//反过来 List<Integer>转换成List<Object>也是不允许的
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交