我正在通过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
(其他任何地方都没有引用)?