まず、これはInitialize final variable before constructor in Javaの正確な複製ではありません。多分関連しているかもしれませんが、私を満足させる答えはありません。最終的な変数の代入:宣言またはコンストラクタで?
私の問題は、Swing GUIの最終変数についてです。特に、カスタムAction
についてです。 私はfinal
の変数とstatic final
の変数の数を持っています。
問題は、変数が実際に定数であれば、何が良いか:構築時に初期化するか、宣言時に初期化するか?
私が上で触れた質問の回答は、一般に、宣言時に割り当てることができるようになるとすぐに変数static
を作成することを指しています。変数は静的コンテキストでは使用されないので、それは私には分かりません。私はフォームがアイコンのように使用するいくつかの画像を持っていますが、あなたのアプリケーションがそれらを変更しない限り、Imageは単に静的なものなので、静的にしました。それは理にかなっている。
一方、Action
は、カスタム内部クラスの新しいインスタンスです。非常に技術的にも静的ですが、違った感じです。単には、を静的コンテキストで使用することはできません。だから私は置く:
private final CustomAction customAction = new CustomAction();
私はそれをコンストラクタで初期化するか?どちらが良いですか?または、私はstatic
について間違った方法を考えていますか?
あなたの研究を先に進めるためには、 –
あなたが宣言時に値を知っているなら、それを宣言で初期化してください。それ以外は建設中です。 – titogeo