1
我使用java.util.Scanner
來從控制檯讀取命令。java.util.Scanner:等待輸入
try
{
ICommand cmd = cmdReader.ReadCommand();
cmd.Execute(conn);
}
catch(MyException ex)
{
// print a message about unknown command
continue;
}
凡ReadCommand
被實現如下:
try (Scanner scanIn = new Scanner(System.in))
{
if (!scanIn.hasNextLine()) return null;
line_ = scanIn.nextLine();
ICommand command = parser_.ParseCommand(line_);
return command;
}
在第一次迭代代碼工作正常,我寫的東西無效(不是命令),代碼打印警告並繼續。但是,即使我在控制檯中寫入某些內容,其他迭代也會在此返回null
if (!scanIn.hasNextLine()) return null;
。看起來像java.util.Scanner
沒有看到輸入。難道我做錯了什麼?那我怎麼能等待用戶輸入(不想用sleep
這個循環)?