我有以下类(class):
class DerivedMap extends Hashmap<String,Object>
{}
我使用它是因为我想为这种类型的 map 实现一些自定义操作。
然后我将此类的实例传递给需要 Map 的外部 api,这自然很好。
问题是我还从 api 获取 Map 实例作为返回值。由于真实对象隐藏在 api 选择的接口(interface)后面,我知道我不能直接转换它。
那么,如何将 Map 转换为我的自定义 DerivedMap?我必须手动复制所有键/值吗?
谢谢。
最佳答案
你可以像这样创建一个构造函数:
class DerivedMap extends HashMap<String, Object> {
public DerivedMap(Map<String, Object> map) {
super(map);
}
}
然后从 Map
创建一个 DerivedMap
,如下所示:
derivedMap = new DerivedMap(otherMap);
super(map)
调用HashMap
构造函数,将参数映射的所有映射复制到新创建的映射。来自文档:
Constructs a new HashMap with the same mappings as the specified Map.
关于java - 将 Map<T> 转换为派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4838037/