不明白为什么添加的一定要是course类型
2分30秒向courseToSelect中添加字符串时报错(Exception in thread"main"java.lang.ClassCastException:xxxxx,为什么一定要求add的必须是course类型哇?
2分30秒向courseToSelect中添加字符串时报错(Exception in thread"main"java.lang.ClassCastException:xxxxx,为什么一定要求add的必须是course类型哇?
2016-01-13
我也刚学,也有这个问题,我试了试,觉的“3000sama"同学说得不对,”菜鸟起飞点“说的对但没解释清楚:1、”为什么一定要求add的必须是course类型哇?“ 答:不是一定!里面可以随便添加其他类型,你可以尝试添加
public void testAdd() {
Course cr1 = new Course("1", "数据结构");
coursesToSelect.add(cr1);
Course temp = (Course) coursesToSelect.get(0);
System.out.println("添加了课程" + temp.id + temp.name);
coursesToSelect.add("我是字符串");
System.out.println(coursesToSelect.get(1));
}
不使用foreach循环遍历,而是使用普通打印,你会发现字符串已经被添加而且被打印出来了。老师的课程之所以报错,是因为老师使用的是
foreach(Object obj:soursesToSelect){
Course cr = (Couse)obj;// 报错是出在了这里,是因为存入的String类型”我是字符串“不能被强制转换。并不是不能存,而是已经存进去不能强转罢了。
}
结论是:add里可以添加其他类型。
举报