gpt4 book ai didi

java - ArrayList.toArray() 没有转换为正确的类型?

转载 作者:行者123 更新时间:2023-12-01 07:29:47 26 4
gpt4 key购买 nike

所以,我得到的是:

class BlahBlah
{
public BlahBlah()
{
things = new ArrayList<Thing>();
}

public Thing[] getThings()
{
return (Thing[]) things.toArray();
}

private ArrayList<Thing> things;
}

在另一个类中,我得到了:
for (Thing thing : someInstanceOfBlahBlah.getThings())
{
// some irrelevant code
}

错误是:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LsomePackage.Thing;
at somePackage.Blahblah.getThings(Blahblah.java:10)

我怎么解决这个问题?

最佳答案

尝试:

public Thing[] getThings()
{
return things.toArray(new Thing[things.size()]);
}

您的原始版本不起作用的原因是 toArray() 返回 Object[]而不是 Thing[] .您需要使用 toArray 的另一种形式-- toArray(T[]) -- 获取 Things 的数组.

关于java - ArrayList.toArray() 没有转换为正确的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7876954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com