最終変数に値が割り当てられると、変更できないことを知っています。ただし、これに関していくつか質問があります。
static final JButton button;
クラスの外側にフィールドがある場合、main
メソッドで値を割り当てようとするとbutton = new JButton("OK");
、最終修飾子を削除するようにというエラーが表示されますか? ただし、元のbutton
変数はまだオブジェクトを参照していないため、一度割り当てることができるという印象を受けましたか?第 2 に、への参照を完全に削除して
button
、static final JButton button;
クラスの外にある場合、IDE は「空白の最終フィールド ボタンが初期化されていない可能性があります」と主張します。これは、すべての最終フィールドを初期化する必要があるということですか? もしそうなら、後で初期化できないように見えるので、そこで初期化する必要があります。また、ばかげた質問ですが、最終的な変数がインスタンスまたはデータ型を参照する場合、それを他のものに割り当てることはできないという私の最初の仮定は正しいですか?
このコードは完全ではありませんが、私の要点を説明するために提供されています。
public class FinalVarTester {
static final JButton button;
public static void main(String[] args) {
JFrame frame = new JFrame();
Container container = frame.getContentPane();
container.setLayout(new BorderLayout());
button = new JButton("OK");
container.add(button, BorderLayout.SOUTH);
}
}