为什么java包名称应该小写?

时间:2012-09-21 16:19:36

标签: java package programming-languages naming-conventions

实际上这是完全理论上的问题。但有趣的是,为什么java规范不允许在包中使用大写字母字母并导致类似这样的写法:

com.mycompany.projname.core.remotefilesystemsynchronization.*

而不是

com.myCompanyName.projName.core.remoteFileSystemSynchronization.*

3 个答案:

答案 0 :(得分:90)

直接来自Oracle Docs

  

包名称全部小写,以避免与   类或接口的名称。

答案 1 :(得分:31)

  

但有趣的是,为什么java规范不允许在包中使用大写字母字母并导致写出这样的内容:

规范允许它就好了。它只是一个约定来使用全小写。

正如gtgaxiola所说,这确实避免了与类型名称的冲突......在.NET命名约定中,这个发生,导致你do not name a class the same as its namespace的建议。当然,使用camelCase包可以完全避免碰撞。

我怀疑现实是在创建包命名约定时没有仔细考虑。就个人而言,我很少发现这是一个问题 - 如果我最终看到一个包含一个" remotefilesystemsynchronization"那么资本化并不是我所关注的主要问题:)

答案 2 :(得分:0)

它只是另一个惯例 - 人们可能会问为什么类名始终必须以Capital开头,或者方法名称以小案例开头,然后是驼峰式的。 Java 没有强制您使用这种方式。只是一组带下划线的规则可以帮助庞大的社区,因为Java开发人员可以为大多数遵循约定的代码编写容易理解的代码。

没有明确的理由可以这样分配。在编写约定时,它恰好感觉。但是在编写约定之前肯定会有指南。我并不是说它是一个异想天开的作品。指南可能只是通过查看我们应该能够告诉它的类,方法或包以及所有重要的元素 - 在约定中它已经实现。