使用泛型类包装非泛型类的正确方法

时间:2017-02-23 19:37:41

标签: java generics

我正试图在我的项目中包装(并简化)MapDB库,如下所示:

public class MapDbPersistentStorage<V>
{
    private DB db;
    private HTreeMap<String, V> storage;

    public MapDbPersistentStorage(String filename)
    {
        db = DBMaker
                .fileDB(filename)
                .fileMmapEnable()
                .make();

        storage = (HTreeMap<String, V>) db
                .hashMap("section", Serializer.STRING, Serializer.LONG)
                .createOrOpen();
    }

    public V get(String key, V defaultValue)
    {
        return storage.getOrDefault(key, defaultValue);
    }

    public void set(String key, V value)
    {
        storage.put(key, value);
    }

    public void close()
    {
        db.close();
    }
}

正如已经指出的那样,问题是Serializer.LONG部分(它应该是V类型)。我需要根据提供的泛型类型提出一个序列化器。这样做的正确方法是什么?

0 个答案:

没有答案
相关问题