我是新来的,请耐心点:)
我不知道为什么这种方法不能正常工作。它正在为我创建帐户,但是,成功创建帐户后,它无法在同一方法mainMenu()上正常运行。我使用了相同方法的递归调用。 在调试过程中,第二次调用该方法似乎对我的扫描仪来说不是一件好事。
我是学生
public void mainMenu() {
System.out.println("Select your option: ");
System.out.println("1. Open a new account");
System.out.println("2. Display all accounts");
System.out.println("If you want to logout press 9");
Scanner sc = new Scanner(System.in);
int option = 0;
do {
try {
option = sc.nextInt();
System.out.println();
switch (option) {
case 1:
accountUtil.openNewAccount(userConsoleUtil.getUser().getUserName());
mainMenu();
break;
case 9:
userConsoleUtil.logout();
displayLoginMenu();
break;
default:
System.out.println("Invalid option! Try again");
}
} catch (InputMismatchException e) {
System.out.println("Invalid option! Try again");
}
sc.nextLine();
} while (option != 9);
sc.close();
}
如果创建了对象帐户,它应该返回到方法的开头,从而允许创建新帐户或注销退出
答案 0 :(得分:0)
感觉就像您错误地编写了sc.nextLine(),该函数接受了用户的输入。 在catch块结束之后,sc.nextLine()行可能会为您提供意外的输出
答案 1 :(得分:0)
给出您当前的代码和注释,就好像您是用其他方法创建扫描仪并关闭它们一样。不要那样做关闭扫描仪时,您还关闭了System.in
,导致NoSuchElementException
。
Jackson deserialization of type with different objects