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

这节课讲的这个for循环的一些问题

for(Course cr:st.courseToSelect){
				if(cr.id.equals(courseId)){
					student.courses.add(cr);
				}
			}
for(Course cr:student.courses){
			System.out.println("选择了课程:"+cr.id+"\t"+cr.name);
		}

这节课遍历List和set的时候都用对象的实例来引用,为什么之前的课程里的List就是直接用了呢?

for(Object obj:coursesToSelect){
			Course cr=(Course)obj;
			System.out.println("\t"+cr.id+"、"+cr.name);
		}


提问者:指与点 2015-08-07 07:23

个回答

  • lx1024ly
    2015-08-07 22:42:04

     当把对象的属性传进集合里面集合里面是按照属性自己的类型,但是从集合里面拿出来的时候,属性会自动转换为object类型 所以需要强制转,而如果使用了泛型就可以不需要转 直接可以用来调用

  • 指与点
    2015-08-07 18:07:35

    不是报错的问题,主要是“Course cr:st.courseToSelect”、“Course cr:student.courses”和Object obj:coursesToSelect,因为在List的时候也没有使用“Object obj:lt.coursesToSelect”这样使用啊,就是想问泛型的时候要用“st.”和“student.”的原因,

  • 伊兮尘昔
    2015-08-07 09:28:10

    有报错信息吗?把报错信息贴一下,并把运行结果也贴一下