Java Kryo序列化类型检测

Java Kryo序列化类型检测,java,serialization,kryo,Java,Serialization,Kryo,我直接使用Kryo IO来完成我自己的字符串、long和double的低级原语序列化 我想知道的是,Kryo IO在读回序列化字节时是否有任何方法可以自动检测原始数据类型 如果我有一个字节数组,比如说10个序列化的值,我不知道它们是字符串、长字符还是双字符;Kryo是否有任何方法来确定数据类型(如MsgPack can)?Kryo在这方面与普通Java序列化没有区别。反序列化程序可以通过两种方式知道每次反序列化的类型: 它是已知类中的一个字段,因此反序列化器实现按正确的顺序读取每个字段 流中以某

我直接使用Kryo IO来完成我自己的字符串、long和double的低级原语序列化

我想知道的是,Kryo IO在读回序列化字节时是否有任何方法可以自动检测原始数据类型


如果我有一个字节数组,比如说10个序列化的值,我不知道它们是字符串、长字符还是双字符;Kryo是否有任何方法来确定数据类型(如MsgPack can)?

Kryo
在这方面与普通Java序列化没有区别。反序列化程序可以通过两种方式知道每次反序列化的类型:

  • 它是已知类中的一个字段,因此反序列化器实现按正确的顺序读取每个字段

  • 流中以某种方式嵌入了类型信息以让它知道。
    Kryo
    中的
    writeClassAndObject()
    方法就是这样做的——它在实际对象内容前添加了一个紧凑的类标识符,让反序列化程序知道该做什么

    或者,您也可以手动执行类似操作,例如发送一个字节,从有限数量的支持类型中进行选择


  • 此外,这也是格式要求的…

    我刚刚花了一天时间将我的序列化从MsgPack移植到Kryo。Kryo就像一口新鲜空气!