List.toArray()强制类型转换报错最佳解决方式

来源:互联网 发布:网络小红人姗姗和涵涵 编辑:程序博客网 时间:2024/05/16 08:42

List<String> list = new ArrayList<>();list.add("张三");list.add("李四");String[] strings1 = (String[]) list.toArray();//会报错 java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.String[]String[] stirngs2 = list.toArray(new String[0]);//最佳解决方式

依据:

public class ArrayList<E>....{.....     public <T> T[] toArray(T[] var1) {        if(var1.length < this.size) {            return (Object[])Arrays.copyOf(this.elementData, this.size, var1.getClass());//转换成var1所指的类型        } else {            System.arraycopy(this.elementData, 0, var1, 0, this.size);            if(var1.length > this.size) {                var1[this.size] = null;            }            return var1;        }    }.......}
原创粉丝点击