【发布时间】:2015-02-19 23:50:15
【问题描述】:
知道Java不同于PHP,有没有办法在Java中重构这样的行为?:
在 PHP 中我可以做这样的事情:
function a_function() {
static $var = "something";
// do something...
}
在我第一次调用此函数后,对该函数的所有后续调用将导致 $var 根本不会重置为“某物”(其值将在多次调用此函数时保留,即如果该值在执行 // do something... 时,$var 的值将被更改,然后在后续调用之后,$var 的值将是最后分配给 $var 的值。
我想知道在 Java 中是否有相同/类似的方法来执行此操作(在 Java 中的方法中声明静态局部变量是不可能的,所以我想我可以通过其他方式实现这一点)。我想过创建一个受保护的或私有的静态字段,并在对方法的多次调用中使用它(这里可能使用布尔值):
public class A {
protected static boolean isSomething = "false";
public void aMethod() {
// do something... e.g. change the isSomething boolean
// if some condition occurs
}
}
您如何看待这种方法,在这种情况下您会怎么做?还有其他方法可以做到这一点吗?
感谢关注!
【问题讨论】:
-
Java 不是 PHP,不要尝试用 Java 编写 PHP。
-
是的,您可以按照您在第二个示例中显示的方式进行操作。请记住,在多线程情况下,您会遇到该模式的问题。
标签: java static-variables