1

根据 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
}

这里的“有效”将不会返回。它的范围仅在函数内部。有时仅在一个 if 条件下

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

我看到的第一种方法的缺点是,以后很难将该方法重构为多种方法。

4

4 回答 4

4

我会选择第二种方法——这里不是 Java 编码标准的问题,而是干净易读的代码问题。此外,您在第一种情况下将值分配给falsevalid但这并不是真正正确的,因为valid此时不应该有任何值。

附带说明一下,我不希望调用的方法validateInputs()返回一个boolean. 没有传递参数,名称也没有暗示该方法会返回一些东西。将您的代码重构为类似的东西怎么样boolean validInput = isValid(input)

于 2013-06-11T12:15:07.677 回答
2

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

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

于 2013-06-11T12:14:02.727 回答
2

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

这是我认为每个程序员都应该有自己的个人项目的另一个原因。这样,您也可以在家中以自己的风格进行编码,这样您就不会只拘泥于一种风格。

于 2013-06-11T12:14:54.420 回答
2

一个决定应该总是有理由的。

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

Google有一套适用于许多 C 类型语言的良好标准。您所指的示例显示在“局部变量”部分。

于 2013-06-11T12:12:45.457 回答