0

我正在通过java.security.AccessControlContext,并遇到以下代码:

private static boolean debugInit = false;
private static Debug debug = null;

static Debug getDebug()
{
    if (debugInit)
        return debug;
    else {
        if (Policy.isSet()) {
            debug = Debug.getInstance("access");
            debugInit = true;
        }
        return debug;
    }
}

问题:为什么我们需要一个额外的变量,当我们可以简单地debugInit检查如下:if (debug == null)getInstance()

static Debug getDebug()
{
    if (debug == null && Policy.isSet()) {
        debug = Debug.getInstance("access");
    }
    return debug;
}

我是否遗漏了某些东西,或者是否有任何特定理由使用附加变量debugInit(其他任何地方都没有引用)?

4

0 回答 0