使用Runtime时为什么不需要导入java.lang?

时间:2015-01-27 16:45:42

标签: java

在下面的代码中,为什么我需要导入java.awt.Robot,但我可以在不导入Runtime的情况下使用java.lang.Runtime

package classes;

import java.awt.Robot;

public class RuntimeExecution {
    public static void main(String[] args) {
        try {
            Runtime.getRuntime().exec("notepad");
            Robot robot = new Robot();
            robot.keyPress(65);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

2 个答案:

答案 0 :(得分:4)

Because

  

每个编译单元都隐式导入每个公共类型名称   在预定义的包java.lang中声明,就像声明一样   import java.lang.*;出现在每个编译单元的开头   任何包装声明后立即。 结果,所有人的名字   这些类型在每个编译单元中都以简单名称提供。

其中编译单元基本上是您的.java源文件。

答案 1 :(得分:2)

为方便起见,Java编译器会自动为每个源文件导入两个完整的包:

  1. java.lang包和
  2. 当前包裹(包裹 对于当前文件)。
  3. Please ref. oracle.com for more info (http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html)