在 C 中,我可以在函数中创建静态变量。该变量的空间不与函数变量一起分配,它是在程序启动时分配的。(不要太苛刻地嘲笑我的 C,我已经用 Java 编程太久了:)
void myFunc(){
static SomeStruct someStruct;
someStruct.state=INITIALIZED;
goDoSomethingInteresting(MY_COMMAND,&someStruct);
}
在 Java 中,如果我想做类似的事情,我会创建一个类变量然后使用它。
Class TheClass {
SomeStruct someStruct = new SomeStruct();
void myFunc(){
someStruct.setState(INITIALIZED);
goDoSomethingInteresting(MY_COMMAND,someStruct);
}
}
我的问题是做这样的事情的最佳做法是什么?我真的很想将我的变量someStruct
与我的函数关联起来myFunc
,因为myFunc
它是唯一应该知道或使用的代码someStruct
,但是除了将变量放在代码中的函数附近之外,没有办法建立这种关联。如果你把它放在上面,那么函数的 Javadoc 看起来很不稳定,如果你把它放在下面,那么它们是否属于一起就不是很清楚了。
通常我只会在someStruct
本地创建,但在我的情况下创建非常昂贵someStruct
,而且我myFunc
会在一个紧密的循环中调用。