每当我导入 java.awt.* 并尝试使用 List 时,都会出现错误。
有什么方法可以导入 java.awt.* 并使用 List 吗?
awt 和 util 类中 List 的命名约定存在歧义,因此我们可以通过两种方式处理:
使用导入
import java.awt.*;
import java.util.List;
import java.util.*;
使用完整路径,如 Head First Java 中所述,“使用导入或全名”
java.util.List<String> list = new java.util.ArrayList<String>();
通过Google快速搜索
类名 List 现在是不明确的,因为有两个类 java.awt.List 和 java.util.List。您可以通过添加类名的特定导入来解决歧义:
import java.awt.*;
import java.util.*;
import java.util.List;
但是,如果您需要在同一个源文件中同时引用 java.awt.List 和 java.util.List,那么您已经越过了导入机制的限制。您可以使用 import 语句将其中一个名称缩短为 List,但只要在源文本中出现另一个名称,您就需要通过其全名来引用它。
问题是 java.awt 里面也有一个 List,所以当你调用 List 时编译器不知道你使用的是哪一个。
我想你会这样称呼你的名单:
java.util.List list = new java.util.List();
所以这样编译器就知道你指的是哪个“列表”。