我只有这个,但我的编译器说:类型不匹配:无法从ArrayList转换为List 那么有什么人能告诉我的问题是什么?我正在使用Elipse Java EE IDE。
import java.awt.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
List list = new ArrayList();
}
}
答案 0 :(得分:21)
导入错误,必须为java.util.List
。
答案 1 :(得分:5)
您导入了java.awt.List
,它是AWT包中的列表控件,而不是java.util.List
,它是表示元素列表的集合类。因此,Java认为您正在从逻辑数组值列表转换为窗口小部件,这没有任何意义。
将导入行更改为
import java.util.List;
应该解决这个问题,就像编写
一样java.util.List list = new ArrayList();
明确指出您想要一个集合。
那就是说,你也应该在这里使用泛型。使用原始集合类型一直被弃用。最好的答案是写一些像
这样的东西List<T> list = new ArrayList<T>();
希望这有帮助!
答案 2 :(得分:3)
您需要导入java.util.List
而不是java.awt.List
。
您可能还想使用类型参数而不是原始类型。例如,如果列表将保留String
值:
List<String> list = new ArrayList<>();
或者,在Java 7之前:
List<String> list = new ArrayList<String>();
答案 3 :(得分:2)
因为java.util.ArrayList
扩展了java.util.List
,而不是java.awt.List
。您导入了错误的类:
import java.awt.List;
VS
import java.util.List;
答案 4 :(得分:1)
正如其他人所说,它导致导入错误。由于您正在使用Eclipse EDE,如果出现错误,请将光标保持在该位置并按Ctrl + 1
,它将为您显示可能有助于您修复错误的建议。