我正在編寫一個程序,在某一點上,我需要使用JOptionPane在窗口上打印字符串。該行的代碼看起來是這樣的:JOptionPane和掃描儀輸入問題
JOptionPane.showMessageDialog(null, "Name: " + a.getName());
行getName功能指的是我創建的具有返回字符串的方法的對象。然而,當我的代碼達到這一點時,程序似乎進入某種無限循環,因爲窗口永遠不會彈出,並且在使用調試時,它看起來永無止境。
最重要的是,當我使用getName時,我允許用戶在主驅動程序中使用不同的函數設置此名稱。
getName()基本上是一行,返回名稱;
我的setName()函數的代碼基本上是:
Scanner a = new Scanner(System.in);
System.out.print("Pick a name: ");
name = in.nextLine();
a.close();
名稱是在類私有變量。 close()不是必需的,但我試圖看看它是否有任何作用。
我注意到的是,如果我使用上面的代碼,窗口永遠不會彈出,並且我陷入了無限循環。但是,如果我只是名稱=行改變任何東西,如:
name = "foo";
的代碼運行平穩,窗口彈出,我不陷入一個循環。即使我在程序提示時未輸入名稱,導致產生空字符串,窗口仍然不會彈出。任何人都可以幫助並告訴我爲什麼會發生這種情況?謝謝。