避免覆盖ArrayList中的对象
问题内容:
堆垛机。我一直在网站上搜索我的问题,但没有找到我想要的东西。我坚持下面的代码:
public class Users{
ArrayList<ValidateUser> personer = new ArrayList<ValidateUser>();
ValidateUser newUser = new ValidateUser();
newUser.setUser("administrator");
newUser.setPass("asdf123");
newUser.setBalance(0.8);
newUser.setType("admin");
personer.add(newUser);
得到了一个不错的数组列表,但是如果我在ArrayList中添加更多“
newUsers”,它们似乎会相互覆盖。我不想创建一个newUser1,newUser2对象,因为稍后在我的程序中,我必须能够直接从该程序添加新用户。
如何实现呢?
ValidateUser:
public class ValidateUser {
private String username;
private String password;
private double balance;
private String role;
public void setUser(String user) {
username = user;
}
public void setPass(String pass) {
password = pass;
}
public void setBalance(double rating) {
balance = rating;
}
public void setType(String type) {
role = type;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public double getBalance() {
return balance;
}
public String getRole() {
return role;
}
}
问题答案:
如果我理解正确,那么您是以这种方式添加新用户的:
ValidateUser newUser = new ValidateUser();
newUser.setUser("administrator");
newUser.setPass("asdf123");
newUser.setBalance(0.8);
newUser.setType("admin");
personer.add(newUser);
newUser.setUser("different admin");
personer.add(newUser);
但是,通过这种方式,对象指向相同的引用,因此您必须执行以下操作以实例化新对象:
newUser = new ValidateUser();
newUser.setUser("foo");
personer.add(newUser);