2013-11-23 56 views
0

我有這種方法的一個問題:「System.in.read()」 中的Java

public void runTransaction(){ 
    //Some calculations... 
    wait(); 
    //Other calculations... 
} 

private static void wait(){ 
    try { 
     System.out.println("Press <enter> to continue"); 
     System.in.read(); 
    } 
    catch (java.io.IOException ex) { 
     System.out.println("Input error..."); 
    } 
} 

但按下回車鍵後,PROGRAMM不會繼續。我使用的是Ubuntu 12.04。

編輯:該程序確實打印消息「按繼續」,但不會繼續之後,它只是等待輸入。

+1

這個方法叫做什麼?給我們多一點代碼 – Mirco

+0

我編輯了我的帖子。方法'runTransaction'在'main'方法中被多次調用。 – user3019653

回答

0

你的代碼是否可以編譯? wait方法在Object類中是公共的,因此它不能被重寫爲private。嘗試使用不同的方法名稱,如waitForInput

+0

是代碼編譯,消息打印並等待輸入 – user3019653

+0

等待方法是靜態的,因此不會覆蓋Object.wait實例方法。 – Brandon

1

這甚至不應該編譯:

  1. in.read()可以拋出IOException,你需要處理。 (編輯:看起來你在你的代碼片段修復了這個問題。)

  2. ,因爲它隱藏Objectwait()你不能說出這種方法wait()

一旦這些錯誤得到解決,代碼應該按預期工作。

+0

我沒有發佈整個代碼,對不起 – user3019653

+1

@ user3019653由於該方法的名稱爲「wait()」,所以該代碼段仍然不應該編譯。 – arshajii

+0

它編譯,但我改名爲'wait_enter'but得到了相同的結果 – user3019653

0

如果您已將名稱更改爲wait_enter,則您的代碼應該按預期運行,您只需確保在按Enter之前單擊了該控制檯,以便註冊該輸入。

+0

更好地將此添加爲評論而不是答案。 – Runcorn

+0

正如我剛剛加入上週(注意一個代表點),我不能添加評論給其他人的帖子。 – LadyDi