まず第一に、これはJavaのコンストラクターの前にfinal変数を初期化することの正確な複製ではありません。おそらく関係がありますが、私を満足させる答えはありません。
私の問題は、SwingGUIの最終変数に関するものです。特にカスタムについてAction
です。私はいくつかのfinal
変数といくつかの変数を持っていstatic final
ます。
問題は、変数が実際に定数である場合、何が良いかということです。構築時に初期化するか、宣言時に初期化するか。
私が上で述べた質問に対する答えは、一般に、static
宣言するときに変数を割り当てることができるとすぐに変数を作成することを指します。変数は静的コンテキストで使用されないため、これは私にはあまり意味がありません。私のフォームがアイコンのように使用する画像がいくつかあります。アプリケーションがそれらを変更しない限り、画像は単に静的なものであるため、それらを静的にしました。それは理にかなっている。
一方、Action
sはカスタム内部クラスの新しいインスタンスです。非常に技術的には静的でもありますが、感じが違うだけです。それらは、静的コンテキストimoで使用可能であってはなりません。だから私は置くのですか:
private final CustomAction customAction = new CustomAction();
または、コンストラクターで初期化しますか?どちらが良いですか?それとも私は間違った考えをしていstatic
ますか?