2014-02-27 49 views
1

我正在使用Kryo IO直接执行我自己的字符串,长整数和双精度的低级原始序列化。Kryo序列化类型检测

我想知道的是,如果有任何方式让Kryo IO在读取它们时自动检测序列化字节中的基本数据类型?

如果我有一个10个序列化值的字节数组,我不知道它们是字符串,长整数还是双精度;有没有办法让Kryo确定数据类型(如MsgPack可以)?

回答

2

Kryo在这方面与普通的Java序列化没有区别。有两种方法解串器可以知道它是什么类型,每次反序列化:

  1. 这是一个已知的类中的字段,所以解串器执行读取其正确的顺序每个字段。

  2. 以某种方式嵌入流中的类型信息可以让它知道。 Kryo中的writeClassAndObject()方法就是这样做的 - 它将一个紧凑的类标识符预先添加到实际的对象内容中,让解串器知道该做什么。

    或者,您可以手动执行此类操作,例如通过发送单个字节来选择有限数量的支持类型。

另外,这是什么MessagePack格式的授权,以及...

+0

我只花了一天的移植我的系列化从MsgPack到KRYO。 Kryo就像一股清新的空气! – Kong