在下面的代码段中,为什么我需要导入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());
}
}
}
因为
每个编译单元隐式导入每个公共类型名称在预定义的包中声明
java.lang
,就好像声明一样import java.lang.*;
出现在每个编译单元的开头紧跟在任何包语句之后。结果,所有的名字这些类型在每个编译单元中都作为简单名称提供。
其中编译单元基本上是您的.java
源文件。
为方便起见,Java 编译器会自动为每个源文件导入两个完整的包:
- java.lang 包和
- 当前包(包对于当前文件)。
请参考 oracle.com 了解更多信息(http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html)