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中还没有看到它。
答案 0 :(得分:3)
是的,它可以。使用此Java代码:
public class Test {
public String notNull(String str) {
if (str != null) {
return str;
} else {
return "empty";
}
}
}
在Show intentions
上按 Alt + Enter (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分支,您可以通过单击修复它。