【发布时间】:2016-04-04 10:06:03
【问题描述】:
既然所有的 java 类文件都放在一个与 classes 包匹配的目录中,为什么每个类都需要在顶部声明包?编译器不应该能够从目录结构中获取包吗?
【问题讨论】:
-
你的类可能在同一个包中,但在不同的目录下。
-
编译器如何知道哪个目录是源代码树的根目录?
-
这是一个非常有趣的问题,你要注意这一点!不过好像以前有人问过。
-
这个问题有很多重复,也有很多好的答案。但我认为http://stackoverflow.com/a/17798226/3227510 解释得更好。
-
我建议你使用 IDE。这样,它将为您添加
package和import之类的内容。虽然添加包可能看起来多余,但它提供了一个额外的检查文件是否在正确的目录中。
标签: java