我正在运行一个需要
- 不同编程语言(主要是java、c++)之间的相互通信。
- 可以序列化/反序列化为二进制格式和 json 格式。
- IDL 为不同语言生成类代码
Thrift 完全符合这些标准,尽管我们不需要它的 RPC 函数。我们将通过 MQ 发送/接收序列化的节俭数据。序列化对象非常简单。但是,当涉及到反序列化时,我们不能这样做:
byte[] data = recv();
Object object = TDeserializer.deserialize(data);
if (object instanceof TypeA) {
TypeA a = (TypeA) object;
} else if (object instanceof TypeB) {
TypeB b = (TypeB) object;
}
看来我们必须准确地告诉 thrift 它需要反序列化为哪个结构,例如:
byte[] data = recv();
TypeA a;
TDeserializer.deserialize(a, data);
只是想知道是否有一种方法可以在不知道其确切类型的情况下将原始数据反序列化为节俭对象。
谢谢!!