日期:2014-05-20  浏览次数:20691 次

List中的toArray的一些问题
//...
List<String> allList = new ArrayList<String>();
allList.add("111");
allList.add("222");
allList.add("333");
allList.add("444");
String str1[] = allList.toArray(new String[]{}); //这里 new String[]{} 怎么理解 ?
for(int i = 0; i < str1.length; i++){ //文档里是<T> T[] toArray(T[] a)
  System.out.print(str1[i] + " "); // 具体解释下这个泛型
}

System.out.println();//换行

Object str2[] = allList.toArray();

if(str2 instanceof String[]){
  System.out.println("Yes"); //为什么这里不是String[] 的实例 ?
}
//String str3[] = (String)str2; //不能转型 ?
for(int i = 0; i < str2.length; i++){ 
  String str4 = (String)str2[i]; //这里为什么可以转型 ?
  System.out.print(str4 + " ");
}

------解决方案--------------------
探讨
引用:

引用:
我是问 toArray()括号里 为什么要这样写

因为该方法需要一个数组参数,LZ可以自己查看文档,toArray(T[] a),说明该方法规定,它的参数是一个T类型的数组,T表示泛型,所以,对于String类型,就要传入String[]数组的参数

我试了下 在 new String[] 中括号里 写 ……