Java中的变量声明放置指南

DPM*_*DPM 7 java coding-style

Java变量似乎有两个可接受的变量声明放置,每个变量都有不同的存在理由.

根据Sun的代码约定,我们可以看到:

仅在块的开头放置声明.(块是由大括号"{"和"}"包围的任何代码.)不要等到第一次使用变量时才声明变量; 它可能会混淆粗心的程序员并妨碍范围内的代码可移植性.

然而,在备受好评的"代码完整"和其他一些作者提倡将变量范围缩小到最小.这基本上是等到第一次使用之前声明变量.

这两种方法显然是矛盾的,尽管我可以看到它们的两点.

我应该遵循哪个?对此事有何共识?

Dav*_*ton 14

变量尽可能接近其使用声明,原因有两个:

  • 垂直的地方
  • 工具提示

垂直局部性使得更容易推理代码块.读者必须做的扫描越少,就越容易理解代码的作用,以及它的副作用

减少变量范围还可以为自动化工具提供更好的工具提示,例如重构.相关事物越紧密,它们就越明显.

这就是说:如果一个方法足够长以至于上述点可以发挥作用,那么该方法可能已经太长了,并且无论如何都应该重构.