как прервать вызов scanner.nextline ()

В SO есть много тем о том, как прервать чтение system.in, но я ищу здесь какой-то совет о том, как лучше всего кодировать то, чего я пытаюсь достичь.

у меня естьgetlogin() метод, который должен сделать следующее: попросить пользователя ввести необходимые данные среды входа в систему, если через 6 секунд пользователь не введет правильное значение («live» или «test»), затем установить переменную userlogin в значение «test». и верните его звонящему.

Я выбрал следующий подход дляgetlogin() реализация:

launch two threads which do the following:

thread1 creates a scanner object then calls scanner.nextline() and depending on user input set a variable userlogin. Interrupts thread2 before exiting thread1. thread2 waits 6 seconds and if after that userlogin is still not set, then set a default value for userlogin. Interrupts thread1 before exiting thread2.

join thread2 to stop main Thread from returning userlogin as null

return userlogin

Проблема, с которой я столкнулся, заключается в том, чтоscanner.nextline() не прерывается, когдаthread2 звонкиthread1.interruptвот почему я не присоединяюсьthread1 на шаге 2 в качестве основногоThread будет висеть Есть ли способ получитьthread1 завершить послеthread2 прерывает это? Или же этот подход полностью излишним и есть гораздо более простой способ достижения контракта?

Ответы на вопрос(4)

Ваш ответ на вопрос