SonarLint“用单个return语句替换此if-then-else语句”

问题描述 投票:0回答:2

我无法解决此代码异味:

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;
    }
java sonarlint
2个回答
1
投票

您可以将其缩短为:

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

0
投票

您可以将最后三个返回值合并为一个OR,并且仍然可靠/可读。

public static boolean esStringVacio(final Object valor) {
    if (valor == null) {
        return true;
    }
    String valorTrim = valor.toString().trim();
    return valorTrim.equals("") || valorTrim.equals("null");
}
© www.soinside.com 2019 - 2024. All rights reserved.