在我的Java类中,我声明的变量如下
BigDecimal sumFeeBilled = new BigDecimal(0), sumPaid = new BigDecimal(0);
或者我们必须在多行中这样声明
BigDecimal sumFeeBilled = new BigDecimal(0);
BigDecimal sumPaid = new BigDecimal(0);
我们应该遵循哪一个?
在一行中发生的事情越少越好。如果您选择第二个选项,代码将更容易调试(例如,您可以在第二次初始化发生的行上放置一个断点,跳过第一个断点),也更容易读取(IMHO)。唯一需要花费的就是一条线路。我认为这是值得的。
这只是品味和偏好的问题。然而,如果你不制定指导方针,它将成为大多数开发团队无休止辩论/争论的温床,就像Vim与Emacs或IntelliJ与Eclipse一样。
我建议为您的团队设置编码标准,最简单的方法是参考现有的标准,如Sun(现在的Oracle)Java Guidelines,在这种情况下,它建议每行使用一个声明。
以下是《太阳报》关于申报的权威指南[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
此外,您可以声明多个变量并分配多个变量,但不能同时声明和分配两个变量。