为了账号安全,请及时绑定邮箱和手机立即绑定

为什么(Course)SelectCourse.get(i)会失败

int size=SelectCourse.size();
  
  for(int i=0;i<size;i++){
   Course temp = (Course)SelectCourse.get(i);
   System.out.println(temp.id+":"+temp.name);
  }
  



正在回答

4 回答

问题看错了,以上纯属胡扯。

具体的错误:你确定你没有往SelectCourse中添加一些其他的东西?比如课程中提到的字符串。你给出的这段代码是没有问题的。如果是添加了乱七八糟的东西,那就是因为Cast失败了。

0 回复 有任何疑惑可以回复我~

写错了,定义的时候   private List<Course> SelectCourse;

0 回复 有任何疑惑可以回复我~

这是java的多态,SelectCourse这个集合形式上是Object类型的变量,实际上是Course类型的变量,在编译过程中对语法什么的检查好像是由编译器来完成的,这只是浅层次的检查。你对SelectCourse使用了强制转换,从语法上讲没有问题,但是实际有没有问题,编译器是不知道的,这是虚拟机来做的事情,这属于运行时的信息,也就是说RUN后才知道你写的到底对不对。所以这里不能调用get(i);使用泛型List<Course> SelectCourse=new ArrayList();就可以了。

0 回复 有任何疑惑可以回复我~

报什么错?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么(Course)SelectCourse.get(i)会失败

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信