J'ai trois classes: User
, UserManagement
(contenant une liste d'utilisateurs) et LoginController
.Appel d'une méthode sur un objet d'une autre classe sans
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?^
}
}
Ce que je voudrais faire est d'appeler la méthode checkUser
avec des variables je stockées dans la classe LoginController
. Évidemment, je ne veux pas créer un tas d'arraylists chaque fois que je veux vérifier les détails de connexion. Existe-t-il un moyen de faire cela à l'arrayliste dans UserManagement
sans créer une nouvelle liste à chaque fois? La dernière méthode en LoginController
peut donner un meilleur aperçu de ce que j'aime réaliser.
Votre méthode checkuser seeems défectueux, vous pouvez utiliser la même boucle, que vous avez utilisé dans la méthode listAllUsers, et une fois que vous avez trouvé l'utilisateur , vous devriez casser la boucle avec 'break' ou juste retourner vrai –