gpt4 book ai didi

java - 在哪种情况下应该使用 toArray() 和 toArray(T[] a) 的重载版本?

转载 作者:行者123 更新时间:2023-11-29 05:06:12 27 4
gpt4 key购买 nike

我从不使用重载版本的 toArray Object[] toArray(Object[] a) 将集合转换为数组。

下面是我的javacode-

public class Track {
public static void main(String x[]) {
ArrayList<String> iName = new ArrayList<String>();
iName.add("Arpit1");
iName.add("Arpit2");
iName.add("Dubey1");
iName.add("Dubey2");
Object[] array= iName.toArray();

for(int i=0;i<array.length;i++)
System.out.println(array[i].getClass());
}
}

输出-

class java.lang.String

class java.lang.String

class java.lang.String

class java.lang.String

预期-

class java.lang.Object

还有其他一些与此相关的问题,我都经历过,但没有人指出我的问题。

最佳答案

您需要使用重载方法来获取适当类型的数组。否则返回的数组将始终为 Object[] 类型。

您的代码 - 使用不带参数的 toArray() 方法 - 返回一个对象数组,该数组不能转换为另一种类型的数组,因此会抛出异常:

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

关于java - 在哪种情况下应该使用 toArray() 和 toArray(T[] a) 的重载版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302033/

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