首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java将LinkedHashMap转换为扩展LinkedHashMap的类

java将LinkedHashMap转换为扩展LinkedHashMap的类
EN

Stack Overflow用户
提问于 2012-09-17 22:42:56
回答 2查看 2.5K关注 0票数 2

我有一个扩展LinkedHashMap的类(EntireFile)。我试着演绎:

代码语言:javascript
复制
EntireFile old = (EntireFile) functionReturningLinkedHashMap();

它抛出异常,并显示消息:“无法将java.util.LinkedHashMap转换为com.gmail.maximsmol.YAML.GroupMap”。

代码语言:javascript
复制
public class EntireFile extends LinkedHashMap<String, GroupMap>

public class GroupMap extends LinkedHashMap<String, CategoryMap>

public class CategoryMap extends LinkedHashMap<String, LinkedHashMap<String, Integer>>

请帮我解决这个错误!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-17 22:45:34

问题是返回的引用并不是对EntireFile实例的引用。如果functionReturningLinkedHashMap只返回一个LinkedHashMap,那么它就不能被转换为EntireFile,因为它不是一个can它如何获得关于它的任何额外信息呢?

(根据您的例外情况判断,您实际上谈论的是GroupMap而不是EntireFile,但同样的事情也适用。)

LinkedHashMap在这里没有什么特别之处--在Java中也是如此:

代码语言:javascript
复制
Object foo = new Object();
String bar = (String) foo; // Bang! Exception
票数 5
EN

Stack Overflow用户

发布于 2012-09-17 22:55:45

您可以将数据复制到所需的映射类型,而不是强制转换。

代码语言:javascript
复制
EntireFile old = new EntireFile(functionReturningLinkedHashMap());

代码语言:javascript
复制
EntireFile old = new EntireFile();
old.putAll(functionReturningLinkedHashMap());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12461695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档