博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的toArray()
阅读量:4576 次
发布时间:2019-06-08

本文共 896 字,大约阅读时间需要 2 分钟。

toArray有两个方法:不带参数和带参数

public Object[] toArray() {        Object[] result = new Object[size];        System.arraycopy(elementData, 0, result, 0, size);        return result;    }

不带参数的toArray方法,是构造的一个Object数组,然后进行数据拷贝,此时进行转型就会产生ClassCastException(类型转换的锅)。

 

public Object[] toArray(Object a[]) {        if (a.length < size)          a = (Object[]) java.lang.reflect.Array.newInstance(a.getClass().getComponentType(), size);            System.arraycopy(elementData, 0, a, 0, size);        if (a.length > size)            a[size] = null;        return a;    }

带参数的toArray方法,则是根据参数数组的类型,构造了一个对应类型的,长度跟ArrayList的size一致的空数组,虽然方法本身还是以 Object数组的形式返回结果,不过由于构造数组使用的ComponentType跟需要转型的ComponentType一致,就不会产生转型异常。

因此在使用toArray的时候可以参考以下两种方式

 

String[] str = new String[list.size()];list.toArray(str);String[] str = (String[])list.toArray(new String[list.size()]);

 

转载于:https://www.cnblogs.com/wkcode/p/10347183.html

你可能感兴趣的文章
Python3基础系列之一【基础语法】
查看>>
Python3基础系列之二【基本数据类型】
查看>>
Python基础系列之小案例
查看>>
python3基础系列之三【运算符】
查看>>
python3基础系列之四【条件语句&循环语句】
查看>>
GitBlit私有版本控制工具的使用之一【初始化及简易操作】
查看>>
GitBlit私有版本控制工具的使用之二【git基础命令之一】
查看>>
python3基础系列之五【日期时间&函数&模块简介】
查看>>
Mysql数据库之数据类型及约束条件
查看>>
python3基础系列之六【输入&输出&file方法】
查看>>
mysql数据库之mysql架构与执行流程
查看>>
python3基础之七【面向对象】
查看>>
python之md5加密
查看>>
Django REST Framework自定义token认证
查看>>
Django REST Framework自定义权限
查看>>
django集成swagger2.0以上版本
查看>>
Linux下部署多个tomcat
查看>>
linux下tomcat加入到系统服务systemctl
查看>>
区块链七大应用场景
查看>>
消息队列常见的5种使用场景
查看>>