类型不匹配:无法从ArrayList转换为List

时间:2012-05-13 21:00:32

标签: java

我只有这个,但我的编译器说:类型不匹配:无法从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();


    }
}

5 个答案:

答案 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,它将为您显示可能有助于您修复错误的建议。