Groovy 如何使Gpars参与者从控制台读取
我有一个简单的GPAR演员:Groovy 如何使Gpars参与者从控制台读取,groovy,actor,gpars,Groovy,Actor,Gpars,我有一个简单的GPAR演员: class ConsoleActor extends DefaultActor { protected void act() { loop { react { Msg msg -> switch (msg.type) { case MsgType.Read: sender.send(Syste
class ConsoleActor extends DefaultActor {
protected void act() {
loop {
react { Msg msg ->
switch (msg.type) {
case MsgType.Read:
sender.send(System.console().readLine())
break
}
}
}
}
}
但当我试图发送一条消息来强制演员从控制台阅读时,我得到一个NPE:
参与者线程3中发生异常
java.lang.NullPointerException:无法在上调用方法readLine()
空对象
为什么会发生这种情况,以及如何在GPars Actor中从控制台读取数据?我在这里找到了答案:
这对我很有用。我在这里找到了答案:
这对我很有用。我认为你不应该从控制台上读演员的作品。。。另外,如果您在一个无头环境中,
System.console()
将返回null。我认为您不应该从控制台读取参与者的内容。。。此外,如果您处于无头环境中,System.console()
将返回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
}
}
}
}
}