我想知道方法名称和参数之间的空格的总体建议是什么。

也就是说,以下两行之间的一般偏好:

public static void main (String[] args) {} // (We'll ignore the question of spaces between the `String` and `[]` .)
public static void main(String[] args) {}

我最近开始觉得前者是更好的,特别是考虑到方法声明中的所有其他东西(例如throws Exception(s)部分)也是空格分隔的。

===============>>#1 票数:3 已采纳

正如@chris在评论中提到的, 官方Java代码约定明确指出:

请注意,方法名称与其左括号之间不应使用空格。 这有助于区分关键字和方法调用。

正如您在问题中所怀疑的那样,方法的目的是不同的。

===============>>#2 票数:2

2018更新 :由于几乎所有的IDE都允许轻松调用/声明查找,因此在此处切换约定的主要好处是没有实际意义的。 3年之后,我已经切换回“方法名称之后没有空格”规则,因为大多数语言中的大多数样式指南都使用它 ...现有代码样式的例外是IMVHO当增益超过“WTF因子”时可行变化; 在这种情况下,使用最新的工具,没有实际的收益,所以我个人建议不要使用下面提出的备选方案。


我不同意1999年未维护的White Space Java惯例的解释。 它只是说空间不应该用于帮助区分关键字和方法调用 因此,没有任何正式规则是否使用环境,其中不能出现方法调用(因此不需要这样的帮助在哪里)的空间-这样,规则显然适用于invocative上下文(其中电话可以出现,它可以帮助), 适用于声明上下文(其中调用不能出现,哪里会没有任何意义)。 更多 - 因为约定规定空白使用应该有助于区分使用上下文 ,使用声明空间实际上保持规则的精神 - 它实际上允许您区分方法调用和方法声明,即使使用简单的文本搜索(只需搜索方法名称后跟空格)。

切换到它后,区分调用和声明变得更容易。 它还突出了这样一个事实,即名称后面的括号不是调用的 - 并且它们的语法与调用语法不同(即在变量名称之前需要类型声明等),正如您已经注意到的那样。

tl;博士,你可以使用

void method () { } // declaration
void method2 () { // declaration
    method(); // invocation
}

能够快速只对声明/调用进行搜索同时满足约定。

请注意,所有官方Java代码以及大多数代码样式都不使用声明中的空格。

  ask by SimonT translate from so

未解决问题?本站智能推荐: