为什么只自动导入java.lang包?

2022-09-02 03:34:11

我知道这个包是由我们编写的每个java程序自动导入的,因此它中的所有类都自动可供我们使用。java.lang

我的问题是为什么不自动导入和其他软件包呢?这肯定会节省一些打字:)java.util

因此,请解释为什么没有这样做。


答案 1

不自动导入过多的一个很好的理由是为了避免命名空间冲突。例如,如果 中的所有内容都是自动导入的,然后您想要引用名为“Map”的其他类,则必须通过其完全限定的名称来引用它。java.util

为了响应此线程中的其他答案,实际上不会修改类文件的内部表示形式。实际上,这里有一个指向描述类文件结构的 JVM 规范的链接:请参阅导入不存储在任何位置。import


答案 2

所有好的 IDE 将自动解析导入,仅在发生冲突时才提示(两个具有相同类名的包)。