0

Scala でバイナリ メッセージを逆シリアル化しようとしています。

val deserializer = new TDeserializer(new TBinaryProtocol.Factory());
    try {
      val obj = deserializer.deserialize(new ClientError{}, input._2.toArray)

ClientError は、Thrift ファイルから Scrooge で生成された特性です。問題は、deserialize() が TBase オブジェクトを想定しているのに、TBase がインターフェイスであることです。どうすればいいですか?両方を実装する新しいクラスを作成する必要がありますか? 助けてくれてありがとう!

4

2 に答える 2

1

これを試して:

def decode(bytes: Array[Byte]): ClientError = {
  val protocolFactory = new TBinaryProtocol.Factory
  val buffer = new TMemoryInputTransport(bytes)
  val proto = protocolFactory.getProtocol(buffer)
  ClientError.decode(proto)
}
于 2016-05-19T13:28:00.320 に答える