首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在HashMap中有4个条目,希望将它们存储在一个数组中

我在HashMap中有4个条目,希望将它们存储在一个数组中
EN

Stack Overflow用户
提问于 2013-04-14 13:09:46
回答 1查看 73关注 0票数 0

我想检索存储在hashmap中的对象,所有对象都是相同类型的,并且希望将它们存储在数组中。我尝试了很多事情,但仍然没有成功:Holding是由抽象类AbstractHolding实现的接口,进一步是由扩展的类、图书和视频两类,它们还实现了标准实践的接口。我使用视频和图书类的构造函数存储了项目,它在使用调试时显示了正确的长度和内容。我写了这段代码..。

代码语言:javascript
复制
public Holding[] getAllHoldings() {
        System.out.println(holdingMap.values().toArray().length);
        Holding[] holding = (Holding[])holdingMap.values().toArray();

        return holding;

    }

但是得到[Ljava.lang.Object;不能被投射到[Llms.model.Holding];

我不明白当存储的对象是类型保持那么为什么会发生这种铸造错误.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-14 13:12:23

试一试holdingMap.values().toArray(new Holding[0]);

toArray(T[] a)方法将使用

代码语言:javascript
复制
java.lang.reflect.Array.newInstance(a.getClass().getComponentType(), size)

要创建T类型的数组,可以安全地将其转换为T[]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15999406

复制
相关文章

相似问题

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