当 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;
}
}
}
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;
}
}
}