【问题标题】:Why don't you have to add an import statement for the java.lang.Runnable interface? [duplicate]为什么不必为 java.lang.Runnable 接口添加导入语句? [复制]
【发布时间】:2017-01-01 16:43:15
【问题描述】:

我刚刚学习 Java,我写了这个小 sn-p 并注意到编译器没有抱怨我没有 Runnable 接口的 import 语句。为什么会这样?

package Practice.Java.Swing;

public class MainWindowEventLoop implements Runnable {

    @Override
    public void run() {
        // TODO Auto-generated method stub

    }

}

【问题讨论】:

标签: java


【解决方案1】:

因为有一个默认的隐式导入 java.lang.*。来自JLS§7.3

每个编译单元都会隐式导入预定义包java.lang 中声明的每个公共类型名称,就好像声明import java.lang.*; 出现在每个编译单元的开头紧跟在任何package 语句之后一样。因此,所有这些类型的名称在每个编译单元中都可以作为简单名称使用。

【讨论】:

    【解决方案2】:

    包 java.lang 中的任何公共类或接口都可以在不导入的情况下使用。

    来自JLS

    编译单元自动访问其包中声明的所有类型,并自动导入预定义包 java.lang 中声明的所有公共类型。

    例如,出于同样的原因,您不需要导入java.lang.String

    【讨论】:

      【解决方案3】:

      因为 java.lang 中的所有类都是自动导入的。

      【讨论】:

        猜你喜欢
        • 2015-06-14
        • 2014-07-05
        • 1970-01-01
        • 2012-08-06
        • 1970-01-01
        • 1970-01-01
        • 2021-11-03
        • 2016-12-08
        • 1970-01-01
        相关资源
        最近更新 更多