黑马程序员技术交流社区
标题:
有关泛型的问题
[打印本页]
作者:
hmyuanqi
时间:
2014-8-16 17:00
标题:
有关泛型的问题
ArrayList arr = new ArrayList<Integer>();
arr.add("asd");
ArrayList<Integer> arr1 = new ArrayList();
// arr1.add("str"); //只能放integer
ArrayList<Integer> arr2 = new ArrayList<Integer>();
// arr2.add("str"); //只能放integer
System.out.println(arr1); //asd
对于这三个加了泛型的对象的写法,为什么第一中写法可以加String类型的?并且输出无错误,而第二种第三种是不能加String的,第一种和后面两种有什么不同吗?
作者:
fantacyleo
时间:
2014-8-16 18:01
泛型检查发生在编译期,编译器是不知道new出来的是啥玩意儿的,只看你声明的引用变量不带泛型,那就什么都让你装。如果看到你声明的引用变量带泛型,那就只让你装泛型指定的元素
作者:
王凯路路
时间:
2014-8-16 18:06
楼上正解, 泛型只是把安全问题由运行时期,弄到了编译时期. 而等编译通过后, 就不关他的事了,张孝祥老师的视频里有讲的.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2