易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中toArray的用法探究(java数组与list转换)


一.             Incident
import java.util.ArrayList;  
import java.util.List;  
public class Test {  
    public static void main(String[] args) {  
          
        List<String> list = new ArrayList<String>();   
        list.add("1");   
        list.add("2");   
        String[] tt =(String[]) list.toArray(new String[0]);   
    }  
}
 
这段代码是没问题的,但我们看到String[] tt =(String[]) list.toArray(new String[0]) 中的参数很奇怪,然而去掉这个参数new String[0]却在运行时报错。。。
二.             Root Cause Analysis
经研究发现toArray有两个方法:
public Object[] toArray() {  
   Object[] result = new Object[size];     
   System.arraycopy(elementData, 0, result, 0, size);     
   return result;  
}  
不带参数的toArray方法,是构造的一个Object数组,然后进行数据拷贝,此时进行转型就会产生ClassCastException,这也就是上述问题的root cause了。
 
 
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;  
}


相关文档:

java中常用的数据转换

java中常用的数据转换
前些天在项目中遇到了Calender和Date的相互转换问题,然后就查了一些资料。整理了一些相关的常用转换,和大家分享下:
1. Java包装类:在介绍具体的数据类型转换之前,我们有必要先介绍java中的一个特殊的拆装箱类型----java包装类。
• Java包装类出现的目的:为了能够使java程序员可以将ja ......

java排序集锦


package sort;   
  
import java.util.Random;   
  
/**  
 * 排序测试类  
 *   
 * 排序算法的分类如下: 1.插入排序(直接插入排序、折半插入排序、希尔排序); 2.交换排序(冒泡泡排序、快速排 ......

Java GUI JLabel 和 JPanel 图片 和组件重叠问题

package ui;
import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
impor ......

java提取rar压缩文档

转自:http://hi.baidu.com/wqj403/blog/item/149957345cd6a11891ef3976.html
用java怎么提取或是解压rar压缩文档?以前查了很多的资料,没有找到相关的第三方库,网上查找的资料说是解析rar只能更加rar的命令行参数来解析。因为rar压缩文档的内部结构是没有共开的。所以没有专门的解析库程序。自己也就只好用命令行了,但 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号