Apache Ignite:序列化时进行类型替换

时间:2019-05-02 20:47:45

标签: ignite

我有一个类A,一个缓存A_CACHE和一个代理对象AProxy extends A。我的目标是序列化AProxy对象,就像它们是A对象(自动替换类型)一样,并将它们放入A_CACHE中。

在Apache Ignite中,有什么方法可以替代我尝试放入缓存中的对象类型(使用BinarySerializer进行序列化)?

到目前为止我尝试过的。 我已经为两种类型实现并注册了相同的BinarySerializer。我也尝试过使用BinaryNameMapper类来为两个类返回相同的类名,但是没有成功。我现在想到的唯一选择是使用BinaryObjectBuilder。对我来说真的是唯一的选项吗?

1 个答案:

答案 0 :(得分:0)

经过少量研究后,找到了解决方案。 AProxy应该实现writeReplace接口的Serializable方法。从此方法返回代理实例。如果代理类是SerializableExternalizable,并且想要应用自定义序列化,则Binarylizable接口应该由代理类实现(使用上述技巧时,不应用自定义二进制序列化程序,但是而是使用OptimizedMarshaller)。