如何将Maps值读取到序列化器?

时间:2019-08-09 10:04:40

标签: java serialization redis guice kryo

我想将存储在我的Redis数据库中(通过另一个程序)的值读入我的Kryo序列化程序中。现在,当我执行cluster.hgetall时,我会获得以Map形式存储在数据库中的所有值。我希望能够使用Kryo将此映射转换为Object,但是我无法将键值映射传递给它,因为它希望数据数组或流能够转换为Kryo Input对象。如何从Map转换为可以反序列化为新Object的新Input()?

// here hgetall returns a Map<String, String>
// I'd really like to be able to do something like this
// but it won't work since I don't know how to turn Map<String, String> into a kryo Input object

kryoSerializer.deserialize(redis.hgetall())

KryoSerializer(){
    public Object deserialize(Map<String, String> redisReturnMap, Class clazz){
    //  turn redisReturnMap magically into clazz object 
    }
}

// Example of an object stored in the map
class Foo(){
    private string Id;
    private string someInfo;
    private Bar Some subClass;

    //  setters and getters
}

澄清一下,我完全可以通过一种非常hacky的方式来解决此问题。我希望有一个优雅的解决方案,但是即使是最基本的解决方案(例如以某种方式将键和值连接到一个大字符串中并在那里反序列化形式)对于我来说也是一个不错的起点。我似乎无法自己解决这个问题。

0 个答案:

没有答案