集合类的toArray()方法相信大家都不陌生,它的作用是将集合转换成数组。但是这个方法有一个弊端,当toArray()方法使用不当时会产生ClassCastException(类转换异常)!
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
// 下面这行代码就会产生类转换异常。
String[] strArray = (String[]) list.toArray();
for (String item : strArray) {
System.out.println(item);
}
}//报错原因为list.toArray()返回的是Object类型,强制转换的时候发生ClassCastException
解决方案:toArray()方法的重载方法toArray(T[] a)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
// 传入一个String类型的数组。
String[] strArray = list.toArray(new String[0]);
for (String item : strArray) {
System.out.println(item);
}
}