java - 我应该预初始化一个在多个分支中被覆盖的变量吗?

标签 java string

有一个方法:

private String myMethod(String gender)
{
    String newString = "";
    if(gender.equals("a"))
        newString = internal.getValue();
    else
        newString = external.getValue();

    return newString;
}

我重构了所有内容,但有一个小改动: String newString; 而不是:String newString = "";

此重构是否改进了代码?我知道当我们不初始化它时 Stringnull ,但在这个例子中它总是有值 a 来自 if其他。这个重构有什么改变吗?

最佳答案

要回答直接的问题:这里最初不需要赋值;代码执行的所有分支都会向 newString 提供一个值。因此你根本不需要初始化它。否则,我会初始化为您想要的任何值作为“默认”值。

我不会用两个返回值或一个分支语句来分配一个变量,我只想用一个三元返回值:

private String myMethod(String gender) {
    return gender.equals("a")
            ? internal.getValue()
            : external.getValue();
}

关于java - 我应该预初始化一个在多个分支中被覆盖的变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929882/

相关文章:

c++ char比较以查看字符串是否符合我们的需求

java - 关于双数据类型

javascript - JavaScript 中的 ${value} 不起作用

无法将字符串分配给 C 中的扑克牌程序的单个字符变量

java - 如何在 MaterialCalendarView 中显示特定日期和时间的事件?

java - MySQL 列 'FullName' 不能为空

java - NotifyDatasetchanged 不起作用。单击按钮后应用程序崩溃

java - JSP servlet错误,无法弄清楚

javascript - 检查字符串是否包含与正则表达式匹配的子字符串

java - 关于 hibernate 中的数据检索