首先:我对 Java 并不完全熟悉,我知道的一些东西是我在玩 Java 的过程中学到的。
但是,我在几乎所有开源 Java 项目中都注意到了一些事情——使用大量子目录作为源代码,通常看起来像这样:
./src/main/java/com/somedomainname/projectname/sourcefile.java
现在,为什么有这么多子目录?域名是怎么回事?
最佳答案
域名用于包名 - 因此该文件将用于类
com.somedomainname.projectname.sourcefile
其中 com.somedomainname.projectname
是包。
通常,源文件组织反射(reflect)了包布局。普通的 Java 编译器实际上并不强制执行目录结构(尽管某些 IDE,例如 Eclipse 会在您将内容放在“错误的”目录中时报错),但它确实强制将公共(public)类放在一个文件中同名。非公共(public)类可以放在任何文件中,但通常文件名也与那里的类名匹配。这使得在没有任何先验知识的情况下导航到任何类(class)变得非常容易。
Java 语言规范并没有说编译器必须强制执行公共(public)类的约定;它明确表示它可以。参见 section 7.2 of the JLS了解更多详情。
关于Java:点子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3936488/