1

IDEA 的开发者也是 Resharper 的开发者。我喜欢 Resharper 建议重构 if/else 的方式。

IDEA 可以做同样的事情吗?默认情况下不提供此功能。

编辑

以下是我指的一些 Resharper 功能:

Original code:

static public string ToNonNullString(this XmlAttribute attr)
{
    if (attr != null)
        return attr.Value;
    else
        return string.Empty;
}

Suggestion: remove redundant 'else' resulting in following:

static public string ToNonNullString(this XmlAttribute attr)
{
    if (attr != null)
        return attr.Value;
    return string.Empty;
}

源代码在这里( Resharper 的代码建议使代码的可读性降低?)。

我记得当我将 Visual Studio 与 Resharper 一起使用时,我得到了很多类似的建议。尽管我已经使用了 2 年,但在 IDEA 中还没有看到它。

4

1 回答 1

3

是的,它可以。使用此 Java 代码:

public class Test {
    public String notNull(String str) {
        if (str != null) {
            return str;
        } else {
            return "empty";
        }
    }
}

Alt在按+ Enter( Show intentions)时,我收到以下建议else选项

选择Remove Redundant 'else'将方法转换为:

public String notNull(String str) {
    if (str != null) {
        return str;
    }
    return "empty";
}

您可以在运行检查时让 IDEA 自动报告这些。在设置中,转到检查,Confusing 'else' branch在控制流类别中找到。并检查Also report when there are no more statements after the 'if' statement. 检查

然后使用该配置文件运行检查将显示您有一个令人困惑的 else 分支,您可以通过单击修复它。

消除

于 2013-08-08T08:58:03.407 回答