标签:blog java io for 2014 ar new log
package tpackage;
public class ArrayList<E> {
private Object list[];
private int sum=0;
public ArrayList(){
this(16);
}
public ArrayList(int capacity)
{
list = new Object[capacity];
}
public E[] toArray() //将Object数组转型为 E[]
{
return (E[]) list;
}
public void add(String string) {
list[sum++]="string";
}
}
package tpackage;
public class test1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("One");
list.add("Two");
list.add("three");
String[] strs=list.toArray();
}
}
感觉可以的样子,创建Object数组 在转型为String[] 运行错误提示为
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
意思是转型错误 Object不能转型为Sting ; 因为创建的的确是Object 数组:
可以这样解决:
public E[] toArray()
{
E[] elements=null;
if(sum>0)
{
elements=(E[])Array.newInstance(list[0].getClass(), sum);
for (int i=0;i<sum; i++) {
elements[i]=(E)list[i];
}
}
return elements;
}调用toArray()就不会有错误啦
遇到的错误java.lang.ClassCastException,布布扣,bubuko.com
遇到的错误java.lang.ClassCastException
标签:blog java io for 2014 ar new log
原文地址:http://blog.csdn.net/u013107634/article/details/38496923