Вызов Scanner.close () вызывает исключение nosuchelement
У меня есть простой метод, который выводит команду на экран сканированияпользователь 's и возвращает его в виде строки. Если пользовательs ввод недействителен, он уведомляет пользователя и снова спрашивает. Этот метод работал отлично, но мой инструктор упомянул, что мы всегда должны закрывать ресурсы, поэтому я вернулся и добавил метод close, а теперь яполучаю исключение NoSuchElementException каждый раз, когда вызывается метод, независимо от пользовательского ввода. Вот код ...
private String getUserString(String userCommand) {
System.out.println(userCommand);
Scanner scan = new Scanner(System.in);
String userinput = scan.nextLine().trim();
if (userinput.isEmpty()){
System.out.println("Invalid choice");
return getUserString(userCommand);
}
else {
return userinput;
}
}
Исключения всегда указывают на строку, где пользовательский ввод инициируется как scan.nextLine (). Trim (). ПРИМЕЧАНИЕ * Я добавил scan.close () в каждую строку перед каждым оператором возврата, однако я нет включить это выше.