Msgpack通用序列化/去编译

时间:2015-05-12 02:36:53

标签: java generics serialization deserialization msgpack

我正在使用与Axon框架集成的msgpack。所以在轴突事件处理程序上,我得到运行时的对象,可以是任何类型。由于对象类型未知,我想使用泛型序列化/反序列化。序列化正确完成但是当我反序列化字节流时会出现问题。 例如:

public <S, T> T deserialize(SerializedObject<S> serializedObject) {
    byte[] serializedBytes= (byte[]) serializedObject.getData();
    Object bytes = null;
    try {
        bytes=objectMapper.readValue(serializedBytes,Object.class);
        System.out.println("After deserialization : "+bytes);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return (T) bytes;
}

其中serializedObject具有包含序列化字节的自定义方法getData()。 在这里,我读了价值&amp;表示为Object.class我总是得到LinkedHashMap目标的回报值。 是否有任何标准方法可以使用msgpack为任何对象类型执行 GENERIC序列化/反序列化

1 个答案:

答案 0 :(得分:0)

如果没有类型信息,则无法使用msgpack see here

在运行时反序列化对象