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 によるコードの提案により、コードが読みにくくなりますか? )。

Resharper で Visual Studio を使用すると、同様の提案がたくさん寄せられたのを覚えています。私はそれを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 に答える