![](/img/trans.png)
[英]Can we use a String with the name of a Class when using the Class objects?
[英]Should we capitalize “i” when we use “iOS” as a word in a class name?
有些品牌實際上並不喜歡利用他們的第一個字母,而改變可能使它看起來完全不同,特別是對於“iOS”。 更像是“mCore”,“macOS”等等。 當談到班級名稱時,我應該將第一個字母大寫還是保留原始字母?
例如“ iOSCompatProxy
”vs“ IOSCompatProxy
”
此類類名沒有普遍遵循的約定。 即使像“XML”這樣的常規大寫縮寫也會導致不一致; 查看官方JDK類列表 ,我看到許多類名為XMLSomething
類為XmlSomething
。
谷歌在谷歌Java風格指南中對待這個主題,他們提供了將文本轉換為類名的方案:
有時將英語短語轉換為駝峰大小寫的方法不止一種,例如當存在首字母縮略詞或“IPv6”或“iOS”之類的異常結構時。 為了提高可預測性,Google Style指定了以下(幾乎)確定性方案。
從名稱的散文形式開始:
將短語轉換為純ASCII並刪除任何撇號。 例如,“Müller算法”可能成為“Muellers算法”。
將此結果划分為單詞,拆分空格和任何剩余的標點符號(通常為連字符)。
- 推薦 :如果任何單詞已經具有常規使用的傳統駝峰式外觀,請將其拆分為其組成部分(例如,“AdWords”變為“廣告詞”)。 請注意,諸如“iOS”之類的單詞本身並不是真正的駝峰; 它違反任何慣例,因此該建議不適用。
現在小寫所有內容 (包括首字母縮略詞),然后只大寫第一個字符:
- ......每一個字,產生上駱駝的情況 ,或
- ......除了第一個詞之外的每個詞,以產生較低的駱駝案例
最后,將所有單詞連接成一個標識符。
他們的方案產生IosCompatProxy
作為類名, iosCompatProxy
作為變量名。 他們故意無視原始資本化,轉而采用更加基於規則的駝峰案例形式。
也許它不是最漂亮的形式,但是如果你正在尋找一條規則可以遵循,而且你的工作地點沒有規則,Google的風格指南就像你會得到的一樣好,因為它特別提到了“iOS”。 我傾向於認為他們的慣例很高,因為他們使用它們保存了大量的Java(截至2018年,有3億行[1] )。
一般來說,在Java類名中,始終是首字母和開始新單詞的所有后續字母都是大寫的,例如ThisIsAClass
。 這是為了將它們與變量和方法名稱區分開來。 因此,我相信IOSCompatProxy
將是基於我對Oracle樣式指南的解釋的正確類名,這是一般的Java樣式指南,在這里看到(我不相信自上次更新以來所做的任何重大樣式更改):
類名應該是名詞,大小寫混合,每個內部單詞的首字母大寫。 盡量保持您的類名簡單和描述性。 使用整個單詞 - 避免縮略語和縮寫(除非縮寫比長格式更廣泛使用,例如URL或HTML)。
此外,因為iOS是比“互聯網和操作系統”廣泛使用的首字母縮略詞,我會說保持整個首字母縮略詞大寫。 如果您有不同的解釋,例如與@Boann所寫的匹配,請使用它。
但是,我不鼓勵你遵循谷歌的風格指南,除非你為谷歌工作(一般的語法跟隨可能是假設谷歌將其風格指南建立在甲骨文之上),只是因為他們的造型可能與你未來的公司不同。 相反,我建議遵循以下Oracle風格指南: https : //www.oracle.com/technetwork/java/codeconvtoc-136057.html
就個人而言,我會把它作為iOSCompatProxy
。 我認為,對於這個世界上的每一條規則,都有例外。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.