有谁知道为什么Java 1.6有这种行为:
List<String> list = ArrayList<String>();
String[] arr = (String[]) list.toArray();
Run Code Online (Sandbox Code Playgroud)
我得到一个ClassCastException,因为它返回Object []而不是String [].
我以为
List<T>.toArray()应该返回T [] - 不是吗?有没有人能够回答为什么语言中存在这种不便?还有如何解决这个问题?如何在List<String>不通过项目循环的情况下获取String [] ?
我在将数组列表转换为java中的数组时遇到了一些麻烦.
我有一个名为Table的类,它包含一个名为applicantsString 的数组列表.当我使用我的toArray()函数时,似乎没有将数组列表转换为数组.
我知道这个,因为当我运行listArray()函数时,它会给出错误:
java.lang.NullPointerException.
这是代码.任何帮助将不胜感激.
public class Table {
public ArrayList<String> applicants;
public String appArray[];
public Table() {
applicants = new ArrayList<String>();
}
public void addApplicant(String app) {
applicants.add(app);
}
public void toArray() {
int x = applicants.size();
String[] appArray = new String[x];
appArray = applicants.toArray(appArray);
}
public void list() {
for (int i = 0; i < applicants.size(); i++) {
System.out.println(applicants.get(i));
}
}
public void listArray() {
for (int i = appArray.length; i …Run Code Online (Sandbox Code Playgroud)