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

判断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


正在回答

4 回答

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

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

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

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


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

我的也是这样,一脸疑惑

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

举报

0/150
提交
取消

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

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