声纳林特"Replace this if-then-else statement by a single return statement"



我无法修复此代码气味:

public static boolean esStringVacio(final Object valor) {
if (valor == null) {
return true;
}
String valorTrim = valor.toString().trim();
if ((valorTrim).equals("")) {
return true;
}
if ((valorTrim).equals("null")) {
return true;
}
return false;
}

尝试过,但代码气味仍然存在:

if (valor == null || valor.toString().trim().equals("") || valor.toString().trim().equals("null")) {
return true;
} else {
return false;
}

您可以将其缩短为:

return (valor == null || valor.toString().trim().equals("") || valor.toString().trim().equals("null"));

编辑:您可以将更多缩短为:

return ((String.valueOf(valor).trim().equals("null")) || (StringUtils.isBlank(valor)) ;

感谢欧内斯特的建议。

您可以将最后3个返回合并为一个OR,它仍然是可靠的/可读的。

public static boolean esStringVacio(final Object valor) {
if (valor == null) {
return true;
}
String valorTrim = valor.toString().trim();
return valorTrim.equals("") || valorTrim.equals("null");
}

最新更新