java - 复制不同类型的HashMap

标签 java generics hashmap

如何复制 HashMap<String,AddressDTO> 的内容到另一个HashMap<String,AddressBO>不同类型的。没有 AdressDTO之间的继承和AddressBO ,两者都是具有相同属性集的 POJO:

AddressDTO addDTO = new AddressDTO();
addDTO.setAdd1("add1");
addDTO.setAdd2("add2");
addDTO.setAddtype("pri");
addDTO.setCity("city");


Map<String,Object> map1  = new HashMap<String,Object>();
map1.put("primary", addDTO);

Map<String,Object> map2  = new HashMap<String,Object>(map1);
AddressBO addnew = (AddressBO) map2.get("primary");
//this will give me runtime error AddressDTO cannot be cast to AddressBO    
System.out.println(addnew.getAdd1());
System.out.println(addnew.getAdd2());
System.out.println(addnew.getAddtype());

最佳答案

您可以循环访问条目集的结果,这将为您提供键值对并允许您复制。

此外,HashMap 还采用映射。其他 map 可能也是如此。

关于java - 复制不同类型的HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21676884/

相关文章:

java - java中的哪种数据结构可以在恒定时间内添加键/值对并保持按值排序?

java - 最后输入的 HashMap 键是为 map 中的每个元素设置的

JavaFX、tableview 和数据库表

用于 WordML 到 Word2002 转换的 Java 库

java - RX java retryWhen 与计时器不重新订阅可观察

swift - 我可以像使用函数一样创建一个重复的类吗

java - 调用使用泛型定义的方法时为 "error: cannot find symbol "

java - 哈希多映射空间节省问题

java - 在 JEditorPane 中保留空 HTML 行的格式

delphi - 如何在不知道类型参数的情况下声明泛型类型的变量?