当 Arraylist 不接受数据时,如何解决 Arraylist 的问题?

How fix problem with Arraylist when data not accepted in Arraylist?

class Client {
    public static void AddList(User user) {
    }

    static class User {
        public String name;
        public String age;
        public String mail;


        public User(String name, String age, String mail) {
            this.name = name;
            this.age = age;
            this.mail = mail;
        }
    }


    static ArrayList<Object> list = new ArrayList<>();

    public void AddList(String name, String age, String mail) {
        list.add(new User(name, age, mail));
    }
}

public class Main {

    public static void main(String[] args) {
        System.out.println("Give info plz");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        String age = scanner.nextLine();
        String mail = scanner.nextLine();

        Client.AddList(new Client.User(name,age,mail));

        Client.list.add("dqdqd");
        Client.list.add(1);

        for(Object s : Client.list) {
            System.out.println(s);
        }


    }

}
 

这行对我不起作用,程序应该取值并将它们放入 Arraylist,一般来说,程序应该像数据库一样工作,取值并将它们放入 Arraylist,但是这条线对我不起作用,请帮忙。

public void AddList(String name, String age, String mail) {
        list.add(new User(name, age, mail));
    }
}

enter image description here正如您在屏幕截图中看到的那样,输入的数据根本就丢失了

这是因为您还没有实现AddList(User user)方法。您只实现了 AddList(String name, String age, String mail)

public static void AddList(User user) {
}

应该是这样的

public static void AddList(User user) {
   list.add(user);
}

要打印对象,您需要为对象创建一个 toString() 方法。

static class User {
    public String name;
    public String age;
    public String mail;

    public User(String name, String age, String mail) {
        this.name = name;
        this.age = age;
        this.mail = mail;
    }

    public String toString() {
        return name + ", " + age + ", " + mail;
    }
}

您有两个 AddList(User) 方法 - 一个是 class 方法(即静态方法),另一个是实例方法。您正在调用没有正文的 class 方法。由于您从不实例化 Client 的实例,因此实例方法没有任何意义。将主体从实例方法移动到 class 方法并删除实例方法。

class Client {
  static ArrayList<Object> list = new ArrayList<>();

  public static void AddList(User user) {
    list.add(new User(name, age, mail));
  }

  static class User {
    public String name;
    public String age;
    public String mail;

    public User(String name, String age, String mail) {
      this.name = name;
      this.age = age;
      this.mail = mail;
    }
  }
}