Java 访问case类的成员
我在scala伴生对象中定义了一个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)
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
}