将对象添加到ArrayList <object>

0 java arraylist

我正在尝试从文本文件(每行包含由空格分隔的用户名密码对)添加用户名和密码组合列表到名为userList的ArrayList中.User构造函数接受两个字符串,将它们设置为用户名和密码.这应该很简单,但出于某种原因,当我在以下代码之后遍历数组时,所有用户都具有相同的用户名和密码(文本文件中的最后一行).

见下面的代码:

BufferedReader br = new BufferedReader(new FileReader("user_pass.txt"))

String line, username, password; 

while ((line = br.readLine()) != null) {

    String separated[] = line.split(" ");

    username = separated[0];
    password = separated[1];

    userList.add(new User(username,password));
}
Run Code Online (Sandbox Code Playgroud)

这是我遍历arrayList的方式:

        for(User u : userList){
            System.out.println(u.getUsername()+" --> "+u.getPassword());
        }
Run Code Online (Sandbox Code Playgroud)

这是用户类:

公共类用户{

private static String username;
private static String password;


public User(String u, String p) {

    username = u;
    password = p;
}

public String getUsername(){
    return username;
}

public String getPassword(){
    return password;
}
Run Code Online (Sandbox Code Playgroud)

Rei*_*eus 7

usernamepassword字段static,这意味着它们将保留与类别关联每场的单个值(即最后的分配值).删除static关键字将使它们成为实例变量,并为每个类的实例创建一个值

private String username;
private String password;
Run Code Online (Sandbox Code Playgroud)