我在scala配套对象中定义了一个case类。
case class ResponseSuccess(resp: SMPPSubmitSMResp)
我发送给akka-actor(Java)
if(res.isRight) sender ! Backend.ResponseSuccess(sms.resp)
收到这样的,但我不知道如何从ResponseSuccess中提取SMPPSubmitSMResp
} else if (msg instanceof Backend.ResponseSuccess) {
SMPPSubmitSMResp packet = (SMPPSubmitSMResp) msg;
someFunc(packet);
}
我得到的错误(即收到的消息)是:
Backend$ResponseSuccess cannot be cast to SMPPSubmitSMResp
答案 0 :(得分:3)
如果您使用Scala,那么使用Scala Pattern Matching的好方法:
msg match {
case ResponseSuccess(resp) => // do something
case _ => // do something else
}
如果你想使用Java,你将会遇到很多需要为akka转换对象的情况,所以你可以为自己实现一些实用程序。 Something like this