某些品牌实际上并不喜欢利用首字母大写,而更改可能会使外观看起来完全不同,尤其是对于“ iOS”而言。还有更多类似“ mCore”,“ macOS”等等。关于班级名称,我应该将首字母大写还是保留原样?
例如“ iOSCompatProxy
”和“ IOSCompatProxy
”
答案 0 :(得分:2)
对于这种类型的类名,没有普遍遵循的约定。甚至常规的大写缩写(如“ XML”)也会导致不一致。查看the official JDK class list,发现与externalNativeBuild {
cmake {
...
version "3.10.2"
arguments "-GAndroid Gradle - Ninja"
}
}
一样多的名为XMLSomething
的类。
Google在Google Java Style Guide中处理此主题,他们提供了一种将文本转换为类名的方案:
有时候,有多种合理的方法可以将英语短语转换为驼峰式大小写,例如,当出现首字母缩写词或诸如“ IPv6”或“ iOS”之类的异常结构时。为了提高可预测性,Google样式指定了以下(几乎)确定性方案。
从名字的散文形式开始:
将短语转换为纯ASCII并删除所有撇号。例如,“穆勒算法”可能会变成“穆勒算法”。
将此结果分为单词,空格和其他标点符号(通常为连字符)。
- 推荐:如果任何单词在常规用法中已经具有常规的驼峰式外观,请将其拆分为各个组成部分(例如,“ AdWords”变成“ ad words”)。请注意,在驼峰情况下本身并不是真正的单词“ iOS”;它违反了 any 约定,因此该建议不适用。
现在小写的一切(包括首字母缩写词),然后仅大写以下字符的第一个字符:
- ...每个单词,产生驼峰大写字母,或
- ...除了第一个单词以外的每个单词,都会产生小骆驼字母
最后,将所有单词合并为一个标识符。
他们的方案将XmlSomething
作为类名,将IosCompatProxy
作为变量名。他们故意不理会原始大写字母,而是采用一种更加基于规则的骆驼案形式。
也许这不是最漂亮的表格,但是如果您要遵循的规则,并且没有适用的工作规则,那么Google的风格指南就是尽力而为,因为它特别提到了“ iOS”。我倾向于高度重视他们的约定,因为他们维护着使用它们的Java数量巨大(截至2018年[1],有3亿行)。
答案 1 :(得分:1)
通常来说,在Java类名称中,总是以大写字母开头的第一个字母和所有后续字母,例如ThisIsAClass
。这是为了将它们与变量名和方法名区分开。因此,根据我对Oracle样式指南的理解,我相信IOSCompatProxy
将是正确的类名,Oracle样式指南是一般的Java样式指南,如此处所示(我不相信任何重大的样式更改,因为最后更新):
类名应为名词,每个内部单词的首字母应大写。尝试使您的类名称保持简单和描述性。使用整个单词,避免使用首字母缩写词和缩写词(除非缩写词比长格式(如URL或HTML)使用得更广泛)。
此外,由于iOS是一个首字母缩写词,比“ Internet and Operating System”(互联网和操作系统)使用得更广泛,因此我要说整个首字母缩写词要大写。如果您有不同的解释,例如与@Boann所写内容相符的解释,请使用该解释。
但是,除非您为Google工作,否则我不鼓励您遵循Google的风格指南(假设Google将其风格指南基于Oracle,则一般的语法遵循可能是可以的),只是因为它们的风格可能与您所在的公司不同未来。相反,我建议遵循Oracle样式指南,该指南可在此处找到:https://www.oracle.com/technetwork/java/codeconvtoc-136057.html
答案 2 :(得分:-1)
我个人将其命名为iOSCompatProxy
。我认为对于这个世界上的每条规则,都有例外。 :)