黑马程序员技术交流社区

标题: ArrayList里的对象,用get()取出后,就变成Object类型了吗? [打印本页]

作者: 落后就要挨打    时间: 2015-3-22 03:23
标题: ArrayList里的对象,用get()取出后,就变成Object类型了吗?
我在ArrayList里存放了几个User类型的对象,如下:
ArrayList cd = new ArrayList();
cd.add(new User("user1",10));
cd.add(new User("user2",40));
cd.add(new User("user3",30));
现在通过get()方式取出:
User u1 = crowd.get(0);
结果编译提示:
错误: 不兼容的类型: Object无法转换为User
User u1 = crowd.get(0);
                    ^
作者: 殷俊    时间: 2015-3-22 09:33
ArrayList为了能存入各种类型的元素,因此,add添加的元素是(Object obj)的,当你存进去一个new User(“user1”,10)时 ,就相当于Object obj=new User(“user1”,10),类型提升了,此时取出的get(0)就是Object类型的,需要将他下降等级,强制转换成User才行
作者: 绝望    时间: 2015-3-22 10:02
使用泛型吧,泛型就是专为解决这种问题而生的
ArrayList<User> cd = new ArrayList()<User>;就可以了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2