jak przerwać wywołanie scanner.nextline ()

Istnieje wiele wątków na temat przerywania czytania systemu.in, ale tego, czego tutaj szukam, jest pewnego rodzaju rada, jak najlepiej kodować to, co próbuję osiągnąć.

mamgetlogin() metoda, która musi wykonać następujące czynności: poproś użytkownika o wprowadzenie żądanych szczegółów środowiska logowania, jeśli po 6 sekundach użytkownik nie wprowadził poprawnej wartości („na żywo” lub „test”), ustaw zmienną userlogin na „przetestuj” i zwróć ją do dzwoniącego.

Przyjęłam następujące podejście dogetlogin() realizacja:

uruchom dwa wątki, które wykonują następujące czynności:

thread1 tworzy obiekt skanera, a następnie wywołujescanner.nextline() iw zależności od danych wprowadzonych przez użytkownika ustaw zmiennąuserlogin. Przerywa wątek2 przed wyjściemthread1.thread2 czeka 6 sekund i jeśli po tymuserlogin nadal nie jest ustawiony, a następnie ustaw wartość domyślną dlauserlogin. Przerwaniathread1 przed wyjściemthread2.

Przystąpićthread2 zatrzymać głównyThread od powrotuuserlogin jako null

powrót userlogin

Problem z podejściem polega na tymscanner.nextline() nie przerywa kiedythread2 połączeniathread1.interruptdlatego nie przyłączam sięthread1 w kroku 2 jako głównyThread wisiał. Czy istnieje sposób, aby to uzyskaćthread1 zakończyć pothread2 przerywa to? Czy też takie podejście jest całkowicie przesadne i istnieje znacznie prostszy sposób na osiągnięcie zamówienia?

questionAnswers(4)

yourAnswerToTheQuestion