我有下面的类:转换地图<T>派生
class DerivedMap extends Hashmap<String,Object>
{}
我用,因为我想要实现此类型的地图的一些自定义操作。
然后我把这个类的实例传递给一个需要Map的外部API,这自然适用。
问题是我也从Map API获取Map实例作为返回值。由于真正的对象隐藏在api选择的界面后面,我知道我不能仅仅投射它。
那么,如何将Map转换为我的自定义DerivedMap?我必须手动复制所有的键/值吗?
谢谢。
我有下面的类:转换地图<T>派生
class DerivedMap extends Hashmap<String,Object>
{}
我用,因为我想要实现此类型的地图的一些自定义操作。
然后我把这个类的实例传递给一个需要Map的外部API,这自然适用。
问题是我也从Map API获取Map实例作为返回值。由于真正的对象隐藏在api选择的界面后面,我知道我不能仅仅投射它。
那么,如何将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
构造函数,拷贝参数的所有映射映射到新创建的地图。从文档:
构造一个新的HashMap具有与指定的Map相同的映射。
啊。当然。非常感谢你。 – monoceres 2011-01-29 16:51:15
putAll()[和另外7个字符] – bestsss 2011-01-29 16:45:30