Java一行变量声明?

在我的Java类中,我正在声明这样的变量

BigDecimal sumFeeBilled = new BigDecimal(0), sumPaid = new BigDecimal(0); 

或者我们必须在多行中声明这样

 BigDecimal sumFeeBilled = new BigDecimal(0); BigDecimal sumPaid = new BigDecimal(0); 

我们应该遵循哪一个?

这只是品味和偏好的问题。 但是,如果你没有设定指南,它将成为大多数开发团队中无休止的辩论/争论的温床,与Vim vs Emacs或IntelliJ vs Eclipse一起。

我建议为您的团队设置编码标准,最简单的方法是引用已经存在的,例如Sun(现在的Oracle)Java指南,在这种情况下建议每行使用一个声明。

这是Sun的权威指南所说的关于声明的内容[1]:

6.1每行数量

建议每行一个声明,因为它鼓励评论。 换一种说法,

 int level; // indentation level int size; // size of table 

比…更受欢迎

 int level, size; 

不要在同一条线上放置不同的类型。 例:

 int foo, fooarray[]; //WRONG! 

[1] http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141270.html#2991

在一条线上发生的事情越少越好。 如果您选择第二个选项,代码将更容易调试(您可以在第二个初始化发生的行上放置一个断点,例如跳过第一个)并且更容易阅读(恕我直言)。 这要花费你的唯一一件事是一条线。 我认为这是值得的。

这是你的选择,但我经常在使用局部变量时使用第二个,而对于全局变量,我使用以下内容来减少混乱:

 public static final String CONSTANT_A = "constant a", CONSTANT_B = "constant b", CONSTANT_C = "constant c"; 

代替

 public static final String CONSTANT_A = "constant a"; public static final String CONSTANT_B = "constant b"; public static final String CONSTANT_C = "constant c"; 

在这个例子中它并不那么重要,但想象有40多个常数并告诉我你更喜欢哪一个…

第二种变体更具可读性 想想会读你的代码的人

Java最佳实践声明“每行一个声明”。

每行声明多个变量会降低代码的可读性并导致程序员混淆。 它还可能导致对变量类型及其初始值的混淆。 特别是,不要在单个声明中声明以下任何内容:

 1. Variables of different types 2. A mixture of initialized and uninitialized variables 

此外,您可以声明多个变量,并分配多个变量,但不能同时分配两个变量