Java编码标准:变量声明



根据Java编码标准,以下哪一项是最佳实践

public void function1(){
 boolean valid = false;
 //many lines of code
 valid = validateInputs();
 //many lines of code
}

public void function1(){
 //many lines of code
 boolean valid = validateInputs();
 //many lines of code
}

这里'valid'将不用于返回。它的作用域仅在函数内部。有时只有一个if条件

我通常编写类似于第二种情况的代码。好像我的上级不喜欢这样,在我提交审核的时候修改了代码。我的方法不正确,有什么具体的原因吗?

我认为第一种方法的缺点是很难在稍后将方法重构为多个方法。

我会选择第二种方法——这里不是Java编码标准的问题,而是代码干净易读的问题。同样,在第一种情况下,您将值false赋给valid,但这实际上是不正确的,因为valid在那一点上不应该有任何值。

附带说明,我不期望一个名为validateInputs()的方法返回boolean。这里没有传递参数,而且这个名字也没有暗示这个方法会返回什么。把你的代码重构成boolean validInput = isValid(input)怎么样?

我更喜欢只在它们使用的范围内声明变量。这可以避免在不应该使用它的时候意外使用它,并且意味着您可以同时看到声明和用法,而不必跳到代码的开头来查找它。

在C语言时代,你必须使用第一种形式,因为编译器不是很聪明。但是添加了第二种形式,因为它使代码更容易理解。

哪个更好是个人品味的问题。每个地方都有自己的标准,所以你应该在工作中遵循它。

这是我认为每个程序员都应该有自己的个人项目的另一个原因。这样,你也可以在家里用自己的风格编码,这样你就不会被一种风格困住了。

做决定总是要有理由的。

第二个例子更好,因为最好在声明中初始化值。

Google有一套很好的标准,适用于许多c语言。您所引用的示例显示在"局部变量"部分。

最新更新