关于#java#的问题,如何解决?

我是想弄个有可以查询和增加学生信息的东西但是
就是这个不知道为什么就是运行不出来,就是图上那样 ,who给俺解答以下哇,谢谢

img


package 学生管理系统;

import java.util.ArrayList;
import java.util.*;

public class system {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>(null);
        while (true) {
            System.out.println("欢迎来到学生管理系统");
            System.out.println("1 查询学生信息");
            System.out.println("2 增加学生信息");
            System.out.println("3 删除学生信息");
            System.out.println("4 更改学生信息");
            System.out.println("5 退出系统");
            Scanner sc = new Scanner(System.in);
            System.out.println("输出操作序号");
            String choose = sc.next();
            sc.close();
            switch (choose) {
                case "1" ->
                    showstudent(list);
                case "2" ->
                    addstudent(list);
                case "3" ->
                    deletestudent(list);
                case "4" ->
                    changestudent(list);
                case "5" ->
                    System.exit(0);
                default ->
                    System.out.println("没有选项");
            }

        }
    }

    public static void showstudent(ArrayList<Student> list) {
        if (list.size() == 0) {
            System.out.println("没有学生信息,添加后查询");
            return;
        }
        System.out.println("id\t\t姓名\t年龄\t家庭住址");
        for (int i = 0; i < list.size(); i++) {
            Student stu = new Student();
            stu = list.get(i);
            System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAdress());
        }
    }

    public static void addstudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        Student st = new Student();
        System.out.println("请输入一个id");
        int id = sc.nextInt();
        st.setId(id);
        System.out.println("请输入一个姓名");
        String name = sc.next();
        st.setName(name);
        System.out.println("请输入一个年龄");
        int age = sc.nextInt();
        st.setId(age);
        System.out.println("请输入一个家庭住址");
        String adress = sc.next();
        st.setAdress(adress);
        sc.close();
        list.add(st);
    }

    public static void deletestudent(ArrayList<Student> list) {
        System.out.println("删除");
    }

    public static void changestudent(ArrayList<Student> list) {
        System.out.println("更改");
    }
}

```java
package 学生管理系统;

public class Student {
    private int id;
    private String name;
    private int age;
    private String adress;

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return this.id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return this.age;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }

    public String getAdress() {
        return this.adress;
    }

}

```

把这行代码去掉 sc.close(); 你关闭了他之后后面就无法在使用 new Scanner(System.in) 这个了,因为系统的输入流已经被你关闭了。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^