13

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


    }
}
4

5 回答 5

28

不正确的导入,它必须是java.util.List.

于 2012-05-13T21:02:38.590 回答
5

您已导入java.awt.ListAWT 包中的列表控件,而不是java.util.List表示元素列表的集合类。因此,Java 认为您正在将值的逻辑数组列表转换为小部件,这没有任何意义。

将导入行更改为

import java.util.List;

应该解决这个问题,就像写作一样

java.util.List list = new ArrayList();

明确表明您想要一个集合。

也就是说,您还应该在这里使用泛型。使用原始集合类型早已被弃用。最好的答案是写类似

List<T> list = new ArrayList<T>();

希望这可以帮助!

于 2012-05-13T21:02:59.200 回答
4

您需要导入java.util.List而不是java.awt.List.

您可能还想使用类型参数而不是原始类型。例如,如果列表要保存String值:

List<String> list = new ArrayList<>();

或者,在 Java 7 之前:

List<String> list = new ArrayList<String>();
于 2012-05-13T21:02:05.017 回答
2

因为java.util.ArrayList延伸java.util.List,不是java.awt.List。您正在导入错误的类:

import java.awt.List;

对比

import java.util.List;
于 2012-05-13T21:02:27.450 回答
1

正如其他人所说,这是一个导入错误。由于您使用的是 Eclipse EDE,如果出现错误,请将光标保持在该位置并按Ctrl + 1,它会为您显示可能帮助您修复错误的建议。

于 2012-05-13T21:13:25.863 回答