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