Java编译错误,在ArrayList上调用.toArray(1)

时间:2014-07-06 14:35:56

标签: java arraylist

Java编译时错误:“找不到符号”

ArrayList<String> al= new ArrayList<String>();
List l=new ArrayList(al);
l.add("renu");
String [] as=new String[1];
as=l.toArray(1);
for (int i=0;i<1;i++) {
  System.out.println(as[i]);
}

我导入了List接口和ArrayList类。 toArrayList似乎与ArrayList完全兼容,但与List无关。

2 个答案:

答案 0 :(得分:2)

你有几个错误,特别是这会导致编译错误:l.toArray(1)。要修复它们,让我们确保您正在导入正确的类和接口:

import java.util.ArrayList;
import java.util.List;

现在,让我们试试这段代码:

List<String> al = new ArrayList<String>();
al.add("renu");
String[] as = new String[1];
as = al.toArray(as); // this is how we convert a List into an array
for (int i = 0; i < as.length; i++) {
    System.out.println(as[i]);
}

作为旁注,您实际上不必将List转换为数组来迭代它,以下代码是等效的,是一个更好的选择:

List<String> al = new ArrayList<String>();
al.add("renu");
for (String s : al) {
    System.out.println(s);
}

答案 1 :(得分:0)

可以包含错误消息吗?我的猜测是你在这条线上遇到了问题:

as = l.toArray( 1 );

看起来它会抛出一个转换错误,所以尝试像

这样的东西
String[] as;
as = (String[]) l.toArray();