2018 年更新:由于几乎所有 IDE 都允许轻松调用/声明查找,因此在此处切换约定的主要好处是没有实际意义的;3 年后,我已经切换回“方法名称后没有空格”规则,只是因为大多数语言中的大多数样式指南都使用它......当收益超过“WTF 因素”时,对现有代码样式进行例外处理是 IMVHO 可行的变化;在这种情况下,使用最新的工具,没有实际的收益,所以我个人建议反对下面提出的替代方案。
我不同意对1999 年未维护的 White Space Java 约定的解释。它只是说不应该使用空格来帮助区分关键字和方法调用。因此,没有关于是否在方法调用不能出现的上下文中使用空间的官方规则(因此不需要这样的帮助)——因此,该规则显然适用于调用上下文(调用可以出现以及它有帮助的地方)并且不适用于声明性上下文(调用不能出现并且没有任何用途的地方)。甚至更多 - 因为约定指出空格的使用应该有助于区分使用上下文,在声明上使用空格实际上符合规则的精神 - 它实际上允许您区分方法调用和方法声明,即使使用简单的文本搜索(只需搜索方法名称后跟空格)。
切换到它之后,将调用与声明区分开来变得更容易了。它还强调了这样一个事实,即名称后面的括号不是调用性的——并且它们的语法与调用语法不同(即,在变量名之前需要类型声明等),正如您已经注意到的那样。
tl;博士你可以使用
void method () { } // declaration
void method2 () { // declaration
method(); // invocation
}
能够仅对声明/调用进行快速搜索并同时满足约定。
请注意,所有官方 Java 代码,以及大多数常见的代码样式,都不使用声明中的空格。