問題が解決しました。
私のクラスには2つのメソッドがあります。
private void retrieveDetails(){
List<String> details = File.getCredentials();
username = details.get(0);
pw = details.get(1);
}
private void checkCredentials() throws IOException {
retrieveDetails();
System.out.println("\nPlease enter USERNAME: ");
String usersName = scan.next();
System.out.println("\nPlease enter PASSWORD: ");
String usersPW = scan.next();
System.out.println("\nEntered details: " + usersName + ", " + usersPW);
System.out.println("\nSystems details: " + userName + ", " + pw);
if (usersName.equals(username) && usersPW.equals(pw)) {
doWork();
} else {
System.out.println("Incorrect credentials");
}
}
以下を文字列が初期化される場所まで移動することで解決策を思いついたと思いました。
List<String> creds = File.getCredentials();
からの詳細がユーザーが入力したものと一致System.out
するかどうかを確認するステートメントを作成しました。retrieveDetails()
それらは一致しますが、システムが実行する代わりにelse句に移動する場合doWork();