簡體   English   中英

java包名為什么要小寫?

[英]Why should java package name be lowercase?

其實這完全是理論上的問題。 但有趣的是,為什么 Java 規范不允許在包中使用大寫字母並導致編寫如下內容:

com.mycompany.projname.core.remotefilesystemsynchronization.*

代替

com.myCompanyName.projName.core.remoteFileSystemSynchronization.*

直接來自Oracle 文檔

包名稱全部小寫,以避免與類或接口的名稱沖突。

但有趣的是,為什么 Java 規范不允許在包中使用大寫字母並導致編寫如下內容:

規范允許它就好了。 使用全小寫只是一種約定

正如 gtgaxiola 所說,這確實避免了與類型名稱的沖突……在 .NET 命名約定中確實會發生這種情況,導致建議您不要將類命名為與其命名空間相同的名稱 當然,使用camelCase 包可以完全避免沖突。

我懷疑現實是在創建包命名約定時沒有徹底考慮它。 就我個人而言,我很少發現這是一個問題——如果我最終看到一個包含“遠程文件系統同步”元素的包,那么大寫不是我關心的主要問題:)

它只是另一種約定——人們可能會問為什么類名總是以大寫開頭,或者方法名以小寫開頭,然后是駝峰式。 Java不會強迫您使用這種方式。 只是一組帶下划線的規則可以幫助龐大的社區作為 Java 開發人員為大多數遵循約定的人編寫易於理解的代碼。

沒有明確的原因可以這樣指定。 這正是當時大多數程序員在編寫約定時感覺良好並且在實踐中的感覺。 但是,在編寫約定之前,肯定會有指導方針。 我不是說它是異想天開的工作。 制定指南以便僅通過查看各種元素我們就應該能夠判斷它的類、方法或包 - 並且通過遵循約定,它已經實現了這么長時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM