我遇到一个这样设置的类:
public class MyClass {
private static boolean started = false;
private MyClass(){
}
public static void doSomething(){
if(started){
return;
}
started = true;
//code below that is only supposed to run
//run if not started
}
}
我对静态方法的理解是,不应在其中使用类变量,除非它们是常量且不会更改。相反,您应该使用参数。我的问题是,为什么通过执行 MyClass.doSomething() 多次调用时不会中断。在我看来,它不应该起作用,但确实起作用。它只会传递 if 语句一次。
那么有人可以向我解释为什么这不会中断吗?
方法doSomething()
和变量started
都是静态的,因此只有一份变量的副本,并且可以从doSomething()
。第一次doSomething()
叫做,started
是假的,所以它设置started
为真,然后……嗯,某事。第二次及以后被调用时,started
是 true,所以它返回而不做任何事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)