2013-11-23 27 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