java中toArray正确用法有三种,toArray方法都需要带参数:
- publicstaticString[]vectorToArray1(Vector<String>v){
- String[]newText=newString[v.size()];
- v.toArray(newText);
- returnnewText;
- }
- publicstaticString[]vectorToArray2(Vector<String>v){
- String[]newText=(String[])v.toArray(newString[0]);
- returnnewText;
- }
- publicstaticString[]vectorToArray3(Vector<String>v){
- String[]newText=newString[v.size()];
- String[]newStrings=(String[])v.toArray(newText);
- returnnewStrings;
- }
而不带参数的toArray()是不行的,运行时会报ClassCastException异常:
- publicstaticString[]vectorToArray4(Vector<String>v){
- String[]newText=(String[])v.toArray();
- returnnewText;
- }
原因分析:
toArray有两个方法:
- publicObject[]toArray(){
- Object[]result=newObject[size];
- System.arraycopy(elementData,0,result,0,size);
- returnresult;
- }
- publicObject[]toArray(Objecta[]){
- 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;
- returna;
- }
不带参数的方法,构造并返回一个Object数组对象,这时候向下转型为String数组对象,导致类型不兼容,报错。
而带参数的方法,构造的数组对象类型和参数的类型一致,故不存在转型。
转:http://ocre.iteye.com/blog/1354264
分享到:
相关推荐
书中以通俗易懂的语言介绍Java语言,力求做到深入浅出。, 全书共30章,分为5篇。Java基础篇介绍Java的概念、数据类型、运算符、流程控制语句及数组等内容;面向对象篇介绍对象和类、访问控制符、继承、接口、封装类...
使用链式编程写法实现Java中byte数组的拼接。例如byte[] bytes = ByteUtils.get().add(0x41).add(07).add(11).add("15288930000").add(0x45).toArray();更灵活用法请参考Mybytes
主要介绍了Java ArrayList.toArray(T[]) 方法的参数类型是 T 而不是 E的原因分析的相关资料,需要的朋友可以参考下
比如,switch的空指针问题、浮点数的比较、无泛型限制引起的类型混乱、加锁与解锁的注意事项、YYYY的日期格式问题等; 2)修改描述112处。比如,IFNULL的判断方式、集合的toArray的数组长度、日志占位符的处理等; 3...
比如,switch的空指针问题、浮点数的比较、无泛型限制引起的类型混乱、加锁与解锁的注意事项、YYYY的日期格式问题等; 2.修改描述112处。比如,IFNULL的判断方式、集合的toArray的数组长度、日志占位符的处理等; ...
NULL 博文链接:https://jiaguwen123.iteye.com/blog/1679345
比如,switch的空指针问题、浮点数的比较、无泛型限制引起的类型混乱、加锁与解锁的注意事项、YYYY的日期格式问题等; 2.修改描述112处。比如,IFNULL的判断方式、集合的toArray的数组长度、日志占位符的处理等; ...
修复建议:使用c.toArray(new String[c.size()])。 6.不良实践 - 方法返回boolean类型返回了null。 7.错误用法 - "."用作正则表达式。 修复建议:String的split方法传递的参数是正则表达式,正则表达式本身用到...
2019.06.19 《阿里巴巴Java开发手册》时隔一年,发布更新1.5.0华山版。同时,将更名为《Java开发手册》,涵盖史无前例的三大升级 1)鉴于本手册是社区开发者集体智慧的结晶,本版本移除阿里巴巴 Java 开发手册的...
Object[] fileArray = allFiles.toArray(); BufferedInputStream in = null; FileInputStream fis = null; ZipOutputStream zos = null; FileOutputStream fos = null; try { fos = new ...
java解析json字符串。 commons-beanutils-1.9.0 commons-collections-3.2.1 commons-lang-2.6 commons-logging-1.1.3 ezmorph-1.0.6 json-lib-2.4-jdk15 demo: package com; import java.util.ArrayList;...
1、容器不是数组,不能通过下标的方式访问容器中的元素2、数组的所有功能通过Arraylist容器都可以实现,只是实现的方式不同3、如果非要将容器当做一个数组来使用,通过toArray方法返回的就是一个数组示例程序:输出...
Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort(unsort_key); for (int i = 0; i ; i++) { result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i])); } return result....
今天小编就为大家分享一篇解决Laravel5.5下的toArray问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
之前一直认为因为List内部实现是数组,ToArray的实现只是将数组返回出去而已。 今天测了一下发现并不是那样 var a = new List(); for (int i = 0; i < 10000; i++) { a.Add(i); } DebugHelper.StartWatch(); ...
jquery.toArray()是将jQuery对象转换成数组,我们来分析下
注意到 destination 的 id 并没有写死在代码中,而是通过以下语句获得的: 清单 11. 获取 destination 的 ID properties.getPropertyAsString(SOURCE, instance.getId()) Property 的 SOURCE 属性由 ...
注意到 destination 的 id 并没有写死在代码中,而是通过以下语句获得的: 清单 11. 获取 destination 的 ID properties.getPropertyAsString(SOURCE, instance.getId()) Property 的 SOURCE 属性由 ...