- Java code
import java.util.ArrayList ;import java.util.List ;public class ArrayListDemo04{ public static void main(String args[]){ List<String> allList = null ; allList = new ArrayList<String>() ; // 指定操作的泛型为String allList.add("Hello") ; // 此方法由Collection接口而来 allList.add(0,"World") ; // 在第一个位置上添加新的内容 allList.add("MLDN") ; // 向Collection中加入内容 allList.add("www.mldn.cn") ; String str[] = allList.toArray(new String[]{}) ; // 指定好类型 System.out.print("指定数组类型:") ; for(int i=0;i<str.length;i++){ System.out.print(str[i] + "、") ; } System.out.print("\n返回对象数组:") ; Object obj [] = allList.toArray() ; // 返回Object类型 for(int i=0;i<obj.length;i++){ String temp = (String)obj[i] ; // 进行向下转型 System.out.print(temp + "、") ; } }};
代码中这行不是很理解“String str[] = allList.toArray(new String[]{}) ”,JDK中给的解释是<T> T[] toArray(T[] a),这个地方“new String[]{}”既然是制定一个对象为什么要加大括号呢?
------解决方案--------------------
因为你的string数组大小不确定嘛,所以初始化要那样了
你也可以这样 String str[] = allList.toArray(new String[5]) 但是allList中的元素是不确定的,所以运行时会报错