使用列表并同时导入java.awt.*

使用列表并同时导入java.awt.*,java,arraylist,Java,Arraylist,每当我导入java.awt.*并尝试使用列表时 我犯了一个错误 有没有办法导入java.awt.*并使用列表?来自 类名列表现在不明确,因为有两个类java.awt.List和java.util.List。您可以通过添加类名的特定导入来解决歧义: import java.awt.*; import java.util.*; import java.util.List; 但是,如果您需要在同一源文件中同时引用java.awt.List和java.util.List,那么您已经超越了导入机制的限制

每当我导入java.awt.*并尝试使用列表时 我犯了一个错误

有没有办法导入java.awt.*并使用列表?

来自

类名列表现在不明确,因为有两个类java.awt.List和java.util.List。您可以通过添加类名的特定导入来解决歧义:

import java.awt.*;
import java.util.*;
import java.util.List;

但是,如果您需要在同一源文件中同时引用java.awt.List和java.util.List,那么您已经超越了导入机制的限制。您可以使用import语句来缩短要列出的一个名称,但在源文本中出现另一个名称时,您需要通过其全名来引用它。

问题在于java.awt中也有一个列表,因此编译器不知道您在调用List时使用的是哪一个

我想你应该这样称呼你的名单:

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

因此,编译器通过这种方式知道您所指的是哪个“列表”。

类awt和util中列表的命名约定存在歧义,因此我们可以通过两种方式处理它:

  • 使用导入

    import java.awt.*

    import java.util.List

    import java.util.*

  • 使用完整路径,如Head First Java中所述,“使用导入或全名”

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