我正在经历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
(其他地方未引用)?