【发布时间】:2011-01-05 23:52:21
【问题描述】:
我读过 Java 不支持 static 与 C/C++ 不同的局部变量。现在,如果我想用一个局部变量编写一个函数,它的值应该在函数调用之间保持不变,我该怎么做?
我应该求助于使用实例变量吗?
【问题讨论】:
-
这就是 Java 需要闭包的原因(开玩笑)。
-
@darren : 闭包与静态局部变量有什么关系?
-
他希望静态局部变量(在 C 意义上)通过多个函数调用来保持状态。换句话说,函数返回后存在局部变量。这是闭包的一种用法。
-
TL;DR 回答:你不能。创建包含类的静态成员变量。
-
这个线程的部分困惑是“静态”关键字在 C 和 Java 中的工作方式不同。在 C 语言中,如果在函数内部使用,该变量的状态从一次调用到下一次调用都会保留,但仅在该函数内部具有作用域。 Java 没有等效的关键字,但一些答案正确地描述了如何使用对象来模拟这种行为。