我有三個類:User
,UserManagement
(包含用戶arraylist)和LoginController
。調用另一個類的對象的方法沒有
public class UserManagement {
//Create an arraylist that stores users
ArrayList<User> users;
public UserManagement() {
users = new ArrayList<User>();
}
public void addUser(String userName, String fullName, String password) {
users.add(new User(userName, fullName, password));
}
public void listAllUsers() {
for (User user : users) {
System.out.println(user.printUserInfo());
}
}
/**
*
* @param userName username to be searched for
* @param password password to be searched for
* @ return boolean for check of username/password
*/
public boolean checkUser(String userName, String password) {
int index = 0;
boolean searching = true;
boolean match = false;
while (searching && index < users.size()) {
String u = users.get(index).getUsername();
String p = users.get(index).getPassword();
if (u.equals(userName) && p.equals(password)) {
//its a match
match = true;
}
else {
// continue searching
index++;
}
}
return match;
}
}
public class LoginController implements Initializable, ControlledScreen {
@FXML
Button loginButton;
@FXML
private TextField login;
@FXML
private PasswordField password;
ScreensController myController;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
public void setScreenParent(ScreensController screenParent) {
myController = screenParent;
}
@FXML
private void handleButtonAction(ActionEvent event) {
UserManagement.users.checkUser(login.getText(), password.getText());
//something like this?^
}
}
我想這樣做是要調用的方法checkUser
與我已經存儲在LoginController
類變量。顯然,我不想創建一堆arraylist每當我想檢查登錄細節。有沒有一種方法可以在UserManagement
中對數組列表進行這樣的操作,而無需每次創建新的數組列表? LoginController
中的最後一種方法可以更好地瞭解我喜歡達到的目標。
你checkUser方法seeems有誤,您可以使用相同的for循環,您在listAllUsers方法使用,一旦你找到了用戶,你應該打破「循環」的循環;或者只是返回true –