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

为什么"for(Course cr:student.courses) "老是报错啊?错误类型是“Type mismatch: cannot convert from element type Object to Course”

public void testForEachForSet(Student student) {
		// 打印输出,学生所选的课程!
		System.out.println("共选择了:" + student.courses.size() + "门课程!");
		for(Course cr:student.courses) {
			System.out.println("选择了课程:" + cr.id + ":" + cr.name);


提问者:慕粉3446166 2016-06-16 11:12

个回答

  • Aliol
    2016-08-06 17:50:18
    已采纳

    haha,楼主的 Student 的 s 没有大写,

    很明显,courses 是 Student类的 属性。



  • Bye白夜
    2017-07-05 15:27:46

    package com.imooc.stu;
    import java.util.*;
    
    public class Student {
       
    	public String id;
    	public String name;
    	
    	public Set<Course> courses;
    	
    	public Student(String id, String name) {
    		
    		this.id = id;
    		this.name = name;
    		
    		this.courses = new HashSet<Course>();
    		
    	}
    	
    }

    Stundet类定义泛型 public Set <Course> courses;

  • qq_零_14
    2016-07-29 09:03:25

    1. 看看你Student中Set的类型和泛型集合类型有没有写错。

    2. student.courses;中的courses是否与Student类中一致。

  • qq_山下有个人_03417295
    2016-06-16 13:41:43

    可能你测试类中创建的List没用泛型吧public List<Course> courses;