首页 > 解决方案 > 声纳警报:重构此方法以不总是返回相同的值

问题描述

我正在使用这段代码来初始化一个动作处理程序,并且我得到一个带有严重性阻止程序的声纳警报:

重构此方法以不总是返回相同的值

对于以下代码:

private static boolean initialized = false;
public static boolean initialize() {
    if (!initialized) {
        //TODO
        initialized = true ;
        return initialized ;
    }
    // TODO
    return initialized;
}

如何改进此代码?

标签: sonarqube

解决方案


如果不知道隐藏在什么之下,// TODO就不可能提出有用的建议。以下代码:

public static boolean initialize() {
    if (!initialized) {
        // TODO
        initialized = true;
        return initialized;
    }
    // TODO
    return initialized;
}

相当于:

public static boolean initialize() {
    if (!initialized) {
        initialized = true;
        return initialized;
    }
    return initialized;
}

这也相当于:

public static boolean initialize() {
    if (!initialized) {
        initialized = true;
    }
    return true;
}

返回的布尔值始终相同,因此返回它没有任何意义。最终代码:

public static void initialize() {
    if (!initialized) {
        initialized = true;
    }
}

推荐阅读