求助:ClassCastException异常...

yes152 2008-01-22 01:44:39
我想把List转换成一个String数组.
看接口 List下有这个方法:可以指定数组的运行时类型
toArray
<T> T[] toArray(T[] a)
	List<String> al = new ArrayList<String>();
al.add("a1");
al.add("a2");
String[] str = (String[])al.toArray();
for(String s : str) {
System.out.println(s);
}

结果:ClassCastException异常
请教前辈,这个方法怎么用呢?我不想用List下的"Object[] toArray()"方法呢...
...全文
218 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yes152 2008-01-22
  • 打赏
  • 举报
回复
正好4个人,一个人5分
谢谢前辈
believefym 2008-01-22
  • 打赏
  • 举报
回复
真觉得少,就加分好了,反正直接可以加的
yes152 2008-01-22
  • 打赏
  • 举报
回复
帖子20分太少了,不过还是先谢谢大家了!!
believefym 2008-01-22
  • 打赏
  • 举报
回复
String str[] = list.toArray(new String[]{});
这个也没先分配空间吧,看看api doc吧



至于那个Object[],返回的是引用,没必要分配,分配了也没用
yes152 2008-01-22
  • 打赏
  • 举报
回复
请教前辈,为什么要先给String数组分配空间呢?
Object[] obj = al.toArray();
for(Object o : obj) {
System.out.println(o);
}

这个Object数组,不先分配空间也没事呢?
帖子20分太少了,先谢谢大家了!!
dracularking 2008-01-22
  • 打赏
  • 举报
回复
晚了
        
List<String> al = new ArrayList<String>();
al.add("a1");
al.add("a2");

String[] toBeStored = new String[al.size()];
al.toArray(toBeStored);

for (String s : toBeStored) {
System.out.println(s);
}



List<String> al = new ArrayList<String>();
al.add("a1");
al.add("a2");

String[] toBeStored = new String[]{};
String[] str = al.toArray(toBeStored);

for (String s : str) {
System.out.println(s);
}
believefym 2008-01-22
  • 打赏
  • 举报
回复

String str[] = list.toArray(new String[]{});
believefym 2008-01-22
  • 打赏
  • 举报
回复

import java.util.*;

public class Arr{
public static void main(String args[]){
ArrayList<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");

System.out.println(Arrays.toString(list.toArray(new String[]{})));
}
}
yuanqingfei 2008-01-22
  • 打赏
  • 举报
回复
    	 List<String> al = new ArrayList<String>();
al.add("a1");
al.add("a2");
String[] str = (String[]) al.toArray(new String[al.size()]);
for(String s : str) {
System.out.println(s);
}
believefym 2008-01-22
  • 打赏
  • 举报
回复
Object[] -> String[]
不能直接强制转换
farandfaraway 2008-01-22
  • 打赏
  • 举报
回复
		ArrayList<String> a=new ArrayList<String>();
a.add("a");
a.add("b");
String[] b=new String[a.size()];
a.toArray(b);
System.out.println(b[0]);

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧