访问案例类的成员

时间:2015-09-25 12:41:26

标签: java scala akka instanceof case-class

我在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

1 个答案:

答案 0 :(得分:3)

如果您使用Scala,那么使用Scala Pattern Matching的好方法:

msg match {
  case ResponseSuccess(resp) => // do something
  case _ => // do something else
}

如果你想使用Java,你将会遇到很多需要为akka转换对象的情况,所以你可以为自己实现一些实用程序。 Something like this