我有一个简单的GPars演员:
class ConsoleActor extends DefaultActor {
protected void act() {
loop {
react { Msg msg ->
switch (msg.type) {
case MsgType.Read:
sender.send(System.console().readLine())
break
}
}
}
}
}
但是当我尝试发送消息强制演员从控制台读取时,我得到了一个NPE:
Actor线程Actor Thread 3中发生异常 java.lang.NullPointerException:无法调用方法readLine() null object
为什么会发生这种情况以及如何从GPars Actor中的控制台读取?
答案 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
}
}
}
}
}
它对我有用。