问答详情
源自:6-2 学生选课---判断 Set 中课程是否存在

判断set中的课程是否存在时报错

public void testSetContains(){
        System.out.println("请输入学生已选的课程名称:");
        String name = console.next();
        Course course2 = new Course();
        course2.name = name;
        System.out.println("新创建课程:"+course2.name);
        System.out.println("备选课程中是否包含课程:"+course2.name+","+
                student.courses.contains(course2));
    }

    public static void main(String[]args){
SetTest st = new SetTest();
        st.testAdd();
    //    st.testListContains();
        st.testForEach();
        st.createStudentAndSelectCours();
        st.testSetContains();

下面是报的错误


有如下课程待选(通过for each方法访问):

课程:2:C语言

课程:1:数据结构

课程:5:高等数学

课程:6:大学英语

课程:3:离散数学

课程:4:汇编语言

欢迎学生:小明选课!

请输入课程ID

1

请输入课程ID

6

请输入课程ID

4

请输入学生已选的课程名称:

大学英语

Exception in thread "main" java.lang.NullPointerException

at com_imooc_collection.SetTest.testSetContains(SetTest.java:129)

at com_imooc_collection.SetTest.main(SetTest.java:139)

新创建课程:大学英语


Process finished with exit code 1


提问者:慕田峪7077931 2019-05-03 11:39

个回答

  • AlexanderW
    2019-05-03 14:20:23
    已采纳

    从你给出的代码 没有什么问题。。如果是报NullPointerException的错误是很有可能你在实例化student的时候没有给student的courses初始化。。。你看一下你的courses有没有被初始化

  • 慕粉1837555165
    2019-12-24 22:14:27

    http://img1.mukewang.com/5e021cef000193aa05040066.jpg将这里的Student 对象的引用删除就行了,因为Student已经成为了成员变量

  • weixin_慕妹2385043
    2019-09-02 22:06:07

    public void createStudentAndSelectCours(){
        //创建一个学生对象
         = new Student("1","小明");
        System.out.println("欢迎学生:" + student.name + "选课!");
        //创建一个Scanner对象,用来接收从键盘输入的课程ID
        Scanner console = new Scanner(System.in);
        
        
        你看一下是不是加粗字体这里写成了Student student


  • 安守那一份思念
    2019-07-29 21:18:56

    我的也是这样,一脸疑惑