【发布时间】:2016-02-11 16:05:53
【问题描述】:
我正在尝试将具有“驱动程序”类中的用户名和密码的对象存储到数组列表中。当我尝试打印数组中的每个值以测试它们是否被存储时,它只会打印多次声明的最后一个值。我已经在与此问题相关的论坛上尝试了几乎所有其他解决方案,但它就是行不通:(
代码如下:
package eDepotSystem;
import java.util.ArrayList;
public class Driver {
protected static String driverUserName;
protected static String driverPassWord;
public Driver (String userName, String passWord) {
driverUserName = userName;
driverPassWord = passWord;
}
public static void driverArray() {
ArrayList<Driver> driverList = new ArrayList<Driver>();
Driver driver = new Driver(driverUserName, driverPassWord);
driver.setUserName("driver1");
driver.setPassword("123");
driverList.add(driver);
driver = new Driver(driverUserName, driverPassWord);
driver.setUserName("driver2");
driver.setPassword("321");
driverList.add(driver);
Driver tempDriver = new Driver(driverUserName, driverPassWord);
for (int i = 0; i < driverList.size(); i++) {
tempDriver = driverList.get(i);
System.out.println(tempDriver);
}
}
public void setPassword(String password) {
driverPassWord = password;
}
public static String getUserName() {
return driverUserName;
}
@Override
public String toString() {
return driverUserName + driverPassWord;
}
}
我不知道我的循环是错误的还是我声明对象的方式是错误的?任何帮助都会很重要,提前感谢!
【问题讨论】:
-
driverUserName和driverPassWord不应是静态的