我正在尝试从文本文件(每行包含由空格分隔的用户名密码对)添加用户名和密码组合列表到名为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)
的username和password字段static,这意味着它们将保留与类别关联每场的单个值(即最后的分配值).删除static关键字将使它们成为实例变量,并为每个类的实例创建一个值
private String username;
private String password;
Run Code Online (Sandbox Code Playgroud)