Java 访问case类的成员

Java 访问case类的成员,java,scala,akka,instanceof,case-class,Java,Scala,Akka,Instanceof,Case Class,我在scala伴生对象中定义了一个case类 case class ResponseSuccess(resp: SMPPSubmitSMResp) 我将其发送给akka演员(Java) 它是这样接收的,但我不知道如何从ResponseSuccess中提取SMPPUSBMITSMRESP } else if (msg instanceof Backend.ResponseSuccess) { SMPPSubmitSMResp packet = (SMPPSubmitSMResp)

我在scala伴生对象中定义了一个case类

case class ResponseSuccess(resp: SMPPSubmitSMResp)
我将其发送给akka演员(Java)

它是这样接收的,但我不知道如何从ResponseSuccess中提取SMPPUSBMITSMRESP

} else if (msg instanceof Backend.ResponseSuccess) {
        SMPPSubmitSMResp packet = (SMPPSubmitSMResp) msg;
        someFunc(packet);
}
我收到的错误(即收到消息)是:


如果您使用Scala,使用Scala的好方法是:


如果你想使用Java,你会遇到很多情况,你必须为akka铸造对象,所以你可以自己实现一些实用程序

您可以执行
msg.resp
以获取
ResponseSuccess
中的
smppusbmitsmresp
。错误:找不到符号[error]smppusbmitsmresp数据包=(smppusbmitsmresp)msg.resp;[error]^[error]symbol:variable resp[error]location:object类型的variable msg您需要先将
msg
转换为
ResponseSuccess
((Backend.ResponseSuccess)msg)。resp()
OP询问如何在Java中执行此操作。主程序在Java中,添加/更改的一些模块正在scala中(重新)完成。我们更喜欢Scala,但不能重写所有内容。
} else if (msg instanceof Backend.ResponseSuccess) {
        SMPPSubmitSMResp packet = (SMPPSubmitSMResp) msg;
        someFunc(packet);
}
Backend$ResponseSuccess cannot be cast to SMPPSubmitSMResp
msg match {
  case ResponseSuccess(resp) => // do something
  case _ => // do something else
}