学生添加不进集合中,遍历集合时调用不到get方法

刚上大一,做学生管理系统
问题代码块:
1) Student s=new Student();
    s.setId(id);
    s.setName(name);
    s.setAge(age);
    s.setAddress(address);
    array.add(s);//这里的s报错
    System.out.println("Add success");

System.out.println(s.getId+);//getId报错,请教过很多同学,解决不了

package com.ArrayListStudentManagementSystem2;

/**
 * @author Qingshen Ou
 * @create 2022/3/12 8:19
 **/
public class Student {
    private String id;
    private String name;
    private String age;
    private String address;

    public Student() {

    }

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

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

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}


package com.ArrayListStudentManagementSystem2;


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

/**
 * @author Qingshen Ou
 * @create 2022/3/12 8:30
 **/
public class Test {
    public static void main(String[] args) {
        ArrayList<String> array=new ArrayList<>();
        while (true) {
            System.out.println("---------------Welcome to the student management system--------------");
            System.out.println("1.Add student");
            System.out.println("2.Delete student");
            System.out.println("3.Modify student");
            System.out.println("4.Check student");
            System.out.println("5.Exist");
            System.out.println("Please enter the number to finish the specified action:");
            Scanner scanner = new Scanner(System.in);
            String a = scanner.nextLine();
            switch (a) {
                case "1":
                    System.out.println("Add student");
                    addStudent(array);
                    break;

                case "2":
                    System.out.println("Delete student");
                    break;
                case "3":
                    System.out.println("Modify student");
                    break;
                case "4":
                    System.out.println("Check student");
                    break;
                case "5":
                    System.out.println("Thank you");
                    System.exit(0);
                default:
                    System.out.println("erro");
                    System.exit(0);
            }
        }
    }

    public static void addStudent(ArrayList<String> array) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Please enter the student id:");
        String id=scanner.nextLine();
        System.out.println("Please enter the student name:");
        String name = scanner.nextLine();
        System.out.println("Please enter the student age:");
        String age=scanner.nextLine();
        System.out.println("Please enter the student address:");
        String address= scanner.nextLine();

        Student s=new Student();
        s.setId(id);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);
        array.add(s);//这里报错
        System.out.println("Add success");
    }
    public static void findAllStudent(ArrayList<String> array){
        System.out.println("id\tname\tage\taddress");
        for (int i=0;i<array.size();i++){
            String s = array.get(i);
            System.out.println(s.getId+s.getName);//这里报错

        }
    }
}






集合的类型设置为Student,读取出来才能转换为Student对象,Student对象才能调用他的函数。


ArrayList<String> array=new ArrayList<>();
改为
ArrayList<Student> array=new ArrayList<>();
public static void addStudent(ArrayList<String> array) {
改为
public static void addStudent(ArrayList<Student> array) {

public String getId(String id) {
        return this.id;
    }
作为get函数,是不需要传递参数的
另外
ArrayList<String> array=new ArrayList<>();
你这个array是个String数组,不是Student数组,你把Student对象加入到array,当然不行了啊
修改如下:
ArrayList<String> array改为ArrayList<Student> array
System.out.println(s.getId+s.getName);
改为
System.out.println(s.getId()+s.getName);
同时把getId函数的参数去掉。

img

img


泛型不一致

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632