如何让Gpars Actor从控制台读取

时间:2017-12-01 10:39:47

标签: groovy actor gpars

我有一个简单的GPars演员:

class ConsoleActor extends DefaultActor {

    protected void act() {
        loop {
            react { Msg msg ->
                switch (msg.type) {
                    case MsgType.Read:
                        sender.send(System.console().readLine())
                        break
                }
            }
        }
    }
}

但是当我尝试发送消息强制演员从控制台读取时,我得到了一个N​​PE:

  

Actor线程Actor Thread 3中发生异常   java.lang.NullPointerException:无法调用方法readLine()   null object

为什么会发生这种情况以及如何从GPars Actor中的控制台读取?

1 个答案:

答案 0 :(得分:0)

我在这里找到答案: StackOverflow - System Console returns null

class ConsoleActor extends DefaultActor {

    protected void act() {
        loop {
            react { Msg msg ->
                switch (msg.type) {
                    case MsgType.Read:
                        Scanner input = new Scanner(System.in);
                        String str = input.nextLine();
                        sender.send(str)
                        break
                }
            }
        }
    }
}

它对我有用。