有一个方法:
private String myMethod(String gender)
{
String newString = "";
if(gender.equals("a"))
newString = internal.getValue();
else
newString = external.getValue();
return newString;
}
我重构了所有内容,但有一个小改动:
String newString;
而不是:String newString = "";
此重构是否改进了代码?我知道当我们不初始化它时 String
是 null
,但在这个例子中它总是有值 a 来自 if
或 其他
。这个重构有什么改变吗?
最佳答案
要回答直接的问题:这里最初不需要赋值;代码执行的所有分支都会向 newString
提供一个值。因此你根本不需要初始化它。否则,我会初始化为您想要的任何值作为“默认”值。
我不会用两个返回值或一个分支语句来分配一个变量,我只想用一个三元返回值:
private String myMethod(String gender) {
return gender.equals("a")
? internal.getValue()
: external.getValue();
}
关于java - 我应该预初始化一个在多个分支中被覆盖的变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929882/