Java一行变量声明?

Sub*_*shi 13 java

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

BigDecimal sumFeeBilled = new BigDecimal(0), sumPaid = new BigDecimal(0); 
Run Code Online (Sandbox Code Playgroud)

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

BigDecimal sumFeeBilled = new BigDecimal(0);
BigDecimal  sumPaid = new BigDecimal(0);
Run Code Online (Sandbox Code Playgroud)

我们应该遵循哪一个?

izo*_*ica 9

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


Cat*_*t H 5

第二个变体更具可读性。想想那些会阅读你的代码的人


til*_*ner 5

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

public static final String CONSTANT_A = "constant a",
                           CONSTANT_B = "constant b",
                           CONSTANT_C = "constant c";
Run Code Online (Sandbox Code Playgroud)

代替

public static final String CONSTANT_A = "constant a";
public static final String CONSTANT_B = "constant b";
public static final String CONSTANT_C = "constant c";
Run Code Online (Sandbox Code Playgroud)

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

  • 拥有一堆常量不是“设计问题”,@KonradMorawski。为了讨论设计问题,我们需要了解上下文。一个充满常量的 Java 文件只是一些数据,我们无法有效地判断它。 (2认同)

Oll*_*lly 5

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

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

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

6.1每行数量

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

int level; // indentation level
int size;  // size of table
Run Code Online (Sandbox Code Playgroud)

比...更受欢迎

int level, size;
Run Code Online (Sandbox Code Playgroud)

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

int foo,  fooarray[]; //WRONG!
Run Code Online (Sandbox Code Playgroud)

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