A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我在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);
                    ^

2 个回复

正序浏览
使用泛型吧,泛型就是专为解决这种问题而生的
ArrayList<User> cd = new ArrayList()<User>;就可以了
回复 使用道具 举报
ArrayList为了能存入各种类型的元素,因此,add添加的元素是(Object obj)的,当你存进去一个new User(“user1”,10)时 ,就相当于Object obj=new User(“user1”,10),类型提升了,此时取出的get(0)就是Object类型的,需要将他下降等级,强制转换成User才行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马