作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从不使用重载版本的 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/
我是一名优秀的程序员,十分优秀!