Java中id的命名规范是什么?

23

如果我有用户id变量,那么正确的Java命名约定是什么?

userId 或者userID

8个回答

39

我记得在某个地方读到过,最好的准则是始终仅大写首字母缩写词的第一个字母(例如,如果您在项目中使用了一个随意的缩略语TTL,那么最好写成userTtl)。

这是有道理的,因为它解决了一些问题。例如,假设您想要一个用户ID计数器。userIDCounter 的可读性比 userIdCounter 差。对于更长的缩略语,情况会变得更糟。


百分之百的一致。我很高兴你提出了这个问题。+1 - Adeel Ansari
3
这样做可以避免纠结于某些缩写到底是一个单词还是一个缩略语的问题。少花时间思考此类问题,意味着有更多时间用来让你的代码正常运行。 - Nate C-K

12

这是一个艰难的决定,甚至Sun公司都不确定该怎么做。看看JRE中的类,

java.net.URL
java.security.acl.Acl
java.net.HttpURLConnection
java.awt.dnd.DnDConstants
java.awt.color.ICC_Profile

个人而言,我倾向于始终使用驼峰命名以保持一致性。


12
HttpURLConnection - 哎呀呀。 +1 - gustafc

11
我认为在这个问题上,Effective Java一书中的作者Joshua Bloch所描述的项目是权威的: 遵守通用的命名惯例
类和接口的名称应该由一个或多个单词组成,每个单词的首字母大写[...] 应避免使用缩写,除非是首字母缩略词和某些常见的缩写,如max和min。[...] 可以有很多理由只将第一个字母大写,但强烈建议这样做,因为这样你仍然可以知道一个单词何时开始和下一个单词何时结束。你更想看到哪个类名,HTTPURL还是HttpUrl?
所以,应该是userId

9

就像这样:

  1. 对于缩写词,仅大写第一个字母。一定要这样做。忽略某些JDK方法的事实。
  2. 但是,“id”是语言中最奇怪的单词之一 - 缩写词,甚至没有人确切知道它的缩写是什么。有人建议“标识文档”,但这很可能是事后编造的。 “标识...某物”是我们所知道的最好的解释。无论如何,如果您使用userID,则意味着普通的id将会是iD,你当然不想这样做,因此胜者是:

userId

(正如其他人所说)。

因此,它最终被视为缩写词。


我更喜欢这个答案,你真的必须告诉自己忽略 JDK 方法(参见 ZZ Coder 的答案) - 对我来说,我看到了 UUID.randomUUID(),那么我该如何命名返回的变量呢?你会认为是 UUID 吗?现在当我开始使用 Id 时,它似乎不那么突出了,但我想这只是偏见。尽管如此,我还是会遵从! - Clarence Liu

6

根据Java命名约定(1)(2),首选第一种。


1
很遗憾,这些都没有涉及到首字母缩写。 - Adeel Ansari
特别是你的第二个参考文献,Java语言规范和Java虚拟机规范,都是庞大的文档集合。它们更像是图书馆而不是书籍。仅目录就有很多页。如果你声称它们支持你的论点,那么你应该一定要引用它们,并告诉读者你在哪里找到了引用。否则,提供这些参考文献对读者来说是没有用的,因为他无法使用这些参考文献,或者至少需要付出巨大的努力才能使用,这并不值得麻烦。 - Daniel S.
@DanielS,链接已经失效并且正在被重定向! - bruno conde

1

这主要取决于您的命名约定以及应用程序(如果有的话)。例如,userId 是 Java 约定中首选的命名方式。


1

0

就Java的规范而言,在很多书籍中都提到了每个单词的首字母应该大写,其他字母应该小写。因此,你会看到类名像AcademicStudent这样,UserId也是如此。


变量应该以小写字母开头,其余部分遵循类名。因此,UserId 暗示一个类名,但 userId 暗示一个变量名。请参阅 http://www.oracle.com/technetwork/java/codeconventions-150003.pdf ,第9章。 - Roland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接