Ich habe drei Klassen: User
, UserManagement
(enthält eine Arraylist der Benutzer) und LoginController
.Aufruf einer Methode für ein Objekt einer anderen Klasse ohne
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?^
}
}
Was würde ich tun möchte, ist die Methode checkUser
mit Variablen nennen ich in der LoginController
Klasse gespeichert haben. Natürlich möchte ich nicht jede Menge Arraylisten erstellen, wenn ich die Login-Daten überprüfen möchte. Gibt es eine Möglichkeit, dies an die Arraylist in UserManagement
zu tun, ohne jedes Mal eine neue Arraylist zu erstellen? Die letzte Methode in LoginController
kann besseren Einblick geben, was ich gerne erreiche.
Ihre Checkuser-Methode seeems fehlerhaft zu sein, können Sie die gleiche for-Schleife verwenden könnte, dass Sie in der listAllUsers Methode verwendet, und wenn Sie den Benutzer gefunden haben , du solltest die Schleife mit 'break' unterbrechen. oder gib einfach wahr zurück –