黑马程序员技术交流社区
标题:
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