问答详情
源自:4-11 学生选课---通过 Set 集合管理课程

最后foreach有问题

我就奇怪了,下面这么多人,编译都能通过吗?最后的foreach循环里面,讲师用的是(Course cr:student.courses),循环遍历对象的属性是Course,但student.courses明明是一个Hashset 对象,并没有指定泛型,也就是说默认属性是Object.为什么我的提示错了?而讲师的没问题?我转成Object后就没问题了,循环里面转成Course就可以打印了

提问者:慕妹2146737 2015-08-07 08:11

个回答

  • 小小白白白
    2016-07-18 17:13:51

    HashSet并不是一个类型吧,它只是创建了一个Set的对象,而泛型又规定只能在Set里添加Course类型的对象,这并不矛盾

  • Slience丶
    2015-10-23 19:12:21

    视频里老师有讲到这个问题,在Student类中重新添加了泛型Course 下面两行

    public Set<Course> courses;

    this.courses=new HashSet<Course>();

  • 新手1024
    2015-09-09 19:10:03

    请教一下 那这里应该怎么改啊 代码是啥

  • 爱娜娜
    2015-09-08 11:05:35

    我的也提示错了,,,类型不匹配,后来加了Course泛型就没问题了