Java SonarLint“用单个返回语句替换此if-then-else语句”
我无法修复此代码:Java SonarLint“用单个返回语句替换此if-then-else语句”,java,sonarlint,Java,Sonarlint,我无法修复此代码: public static boolean esStringVacio(final Object valor) { if (valor == null) { return true; } String valorTrim = valor.toString().trim(); if ((valorTrim).equals("")) { return true;
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)) ;
感谢欧内斯特的建议 您可以将其缩短为:
return (valor == null || valor.toString().trim().equals("") || valor.toString().trim().equals("null"));
编辑:
您可以进一步缩短到:
return ((String.valueOf(valor).trim().equals("null")) || (StringUtils.isBlank(valor)) ;
感谢欧内斯特的建议 您可以将最后3个返回组合成一个或多个,它仍然是可靠的/可读的
public static boolean esStringVacio(final Object valor) {
if (valor == null) {
return true;
}
String valorTrim = valor.toString().trim();
return valorTrim.equals("") || valorTrim.equals("null");
}
您可以将最后3个返回组合成一个或多个,并且仍然是可靠的/可读的
public static boolean esStringVacio(final Object valor) {
if (valor == null) {
return true;
}
String valorTrim = valor.toString().trim();
return valorTrim.equals("") || valorTrim.equals("null");
}
您不需要返回true或false,只需返回checked语句的结果:只要有if条件{return true;}else{return false;},就应该使用return条件;检查null。真正地这难道不是真实的数据吗?@TomHawtin-tackline这可能不会发生吗?可能在json或其他什么东西中?@BugsOverflow我不想使用任何json库或API,它们不能区分json规范直接支持的文本null和字符串null。您不需要返回true或false,只要返回checked语句的结果:只要有if条件{return true;}否则{return false;},应改为使用return条件;检查null。真正地这难道不是真实的数据吗?@TomHawtin-tackline这可能不会发生吗?可能在json或其他什么东西中?@BugsOverflow我不想使用任何json库或API,它们不能区分json规范直接支持的文本null和字符串null。额外的括号是什么?此外,String.isBlank.toString可能是一项昂贵的操作。运行两次可能会对性能造成不必要的损失。出于这个原因,是更好的。你们不应该真的编码高尔夫,参考。额外的括号是什么?此外,String.isBlank.toString可能是一项昂贵的操作。运行两次可能会对性能造成不必要的损失。出于这个原因,它更好。您不应该真正编写golf代码,请参阅。更简短一些:return array.asList,null.containsObjects.toStringvalor.trim@AndyTurner不确定这是否是一种改进,因为破译代码的意图需要更多的时间。问题本身是关于解决自动检测到的代码气味,我怀疑其意图是代码高尔夫。更简短一些:return Arrays.asList,null.containsObjects.toStringvalor.trim@AndyTurner不确定这是否是一种改进,因为破译代码的意图需要更多的时间。问题本身是关于解决自动检测到的代码气味,我怀疑其意图是代码高尔夫。