【问题标题】:Can IDEA do the same if/else suggestions as Resharper?IDEA 能否提供与 Resharper 相同的 if/else 建议?
【发布时间】:2013-08-07 21:18:49
【问题描述】:

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;
}

来源在这里( Code suggestions by Resharper making code less readable?)。

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

【问题讨论】:

  • 你指的是什么快速修复?请举个例子。
  • 对我的答案进行了大修,向您展示如何让 IDEA 报告它们,而不仅仅是修复它们

标签: intellij-idea


【解决方案1】:

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

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

else 上按 Alt+Enter (Show intentions) 时,我收到以下建议:

选择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 分支,您可以通过单击修复它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多