这个array.add(s)哪里有错误啊?

这个array.add(s)哪里有错误啊?每次用这个array.add()方法就会报错,可是不知道错误出现在哪里?

img

这个s从哪里来的呢?
函数开始增加一个Student s;
然后输入的数据可以直接设置给学生数据结构,比如
s.sid = sc.nextLine();
最后array.add(s);
另外你四个提示信息全是“请输出学生的学号",显然复制后没有修改啊

你需要创建一个学生对象,然后将学生对象添加集合中。
代码修改如下:

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        System.out.println("---------欢迎来到学生管理系统---------");
        System.out.println("1 添加学生");
        System.out.println("2 删除学生");
        System.out.println("3 修改学生");
        System.out.println("4 查看所有学生");
        System.out.println("5 退出");
        System.out.println("请输入你的选择:");

        Scanner sc = new Scanner(System.in);
        int line = sc.nextInt();
        switch (line) {
            case 1:
                System.out.println("添加学生");
            case 2:
                System.out.println("删除学生");
            case 3:
                System.out.println("修改学生");
            case 4:
                System.out.println("查看所有学生");
            case 5:
                System.out.println("谢谢使用");
                return;
        }
    }

    public static void addStudent(ArrayList<Student> array){

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学生学号:");
        String sid=sc.next();
        System.out.println("请输入学生姓名:");
        String name=sc.next();
        System.out.println("请输入学生年龄:");
        int age= sc.nextInt();
        System.out.println("请输入学生地址:");
        String address= sc.next();
        Student s=new Student(sid,name,age,address);
        array.add(s);
        System.out.println("添加学生成功");
    }
}

class Student{
    private String sid;
    private String name;
    private int age;
    private String address;
    public Student(){}
    public Student(String sid, String name, int age, String address) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }
}

img

package StudentDemo;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
ArrayList<Student> array=new ArrayList<Student>();
            System.out.println("---------欢迎来到学生管理系统---------");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查看所有学生");
            System.out.println("5 退出");
            System.out.println("请输入你的选择:");

            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            switch (line) {
                case "1":
                    System.out.println("添加学生");
                    addStudent(array);
                case "2":
                    System.out.println("删除学生");
                case "3":
                    System.out.println("修改学生");
                case "4":
                    System.out.println("查看所有学生");
                case "5":
                    System.out.println("谢谢使用");

            return;
        }
    }

public static void addStudent(ArrayList<Student>array){


    Scanner sc=new Scanner(System.in);
    System.out.println("请输入学生学号:");
    String sid=sc.nextLine();
    System.out.println("请输入学生学号:");
    String name=sc.nextLine();
    System.out.println("请输入学生学号:");
    String age= sc.nextLine();
    System.out.println("请输入学生学号:");
    String affress= sc.nextLine();
    Student s=new Student();
    s.setSid(sid);
    s.setName(name);
    s.setAge(age);
    s.setAffress(affress);
    array.add(s);
    System.out.println("添加学生成功");
}
}

 

img


类型不一样