有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Kryo序列化类型检测

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

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

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


共 (1) 个答案

  1. # 1 楼答案

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

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

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

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

    此外,这也是^{}格式的要求