Java 转换地图<;T>;到派生类

Java 转换地图<;T>;到派生类,java,Java,我有以下课程: class DerivedMap extends Hashmap<String,Object> {} 类DerivedMap扩展了Hashmap {} 我之所以使用它,是因为我想为这种类型的映射实现一些自定义操作 然后,我将这个类的实例传递给一个需要映射的外部api,这自然很好 问题是,我还从api获取映射实例作为返回值。因为一个真实的对象隐藏在api选择的接口后面,所以我知道我不能直接强制转换它 那么,如何将地图转换为自定义的DerivedMap?我必须手动复制

我有以下课程:

class DerivedMap extends Hashmap<String,Object>
{}
类DerivedMap扩展了Hashmap
{}
我之所以使用它,是因为我想为这种类型的映射实现一些自定义操作

然后,我将这个类的实例传递给一个需要映射的外部api,这自然很好

问题是,我还从api获取映射实例作为返回值。因为一个真实的对象隐藏在api选择的接口后面,所以我知道我不能直接强制转换它

那么,如何将地图转换为自定义的DerivedMap?我必须手动复制所有键/值吗


谢谢。

您可以创建如下构造函数:

class DerivedMap extends HashMap<String, Object> {
    public DerivedMap(Map<String, Object> map) {
        super(map);
    }
}
derivedMap = new DerivedMap(otherMap);
super(map)
调用将参数映射的所有映射复制到新创建映射的
HashMap
构造函数。从文档中:

使用与指定映射相同的映射构造新的HashMap


您可以创建这样的构造函数:

class DerivedMap extends HashMap<String, Object> {
    public DerivedMap(Map<String, Object> map) {
        super(map);
    }
}
derivedMap = new DerivedMap(otherMap);
super(map)
调用将参数映射的所有映射复制到新创建映射的
HashMap
构造函数。从文档中:

使用与指定映射相同的映射构造新的HashMap

putAll()[还有7个字符]putAll()[还有7个字符]