java - 将 Map<T> 转换为派生类

标签 java

我有以下类(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/

相关文章:

java - 具有可变组数的正则表达式中的表情符号 Unicode

java - Graphics2D 绘图性能

java - 在 lambda 函数中获取接口(interface)引用

java - 使用java连接mysql数据库失败

java - 使用 RxJava 对数组进行异步 forEach

java - 将 Kotlin 数据对象映射到数据对象的更好方法

java网络服务;未生成方法

java - Spring构造函数注入(inject)错误

Java - 根据列大小调整表大小

java - 在请求中发送 "if-modified-since" header