Zunächst ist dies kein exaktes Duplikat von Initialize final variable before constructor in Java. Es ist wahrscheinlich verwandt, aber es gibt keine Antworten, die mich befriedigen.endgültige Variablenzuweisung: bei der Deklaration oder im Konstruktor?
Mein Problem ist über endgültige Variablen in Swing GUI's. Es geht um benutzerdefinierte Action
s insbesondere. Ich habe eine Anzahl von final
Variablen und eine Anzahl von static final
Variablen.
Die Frage ist: Wenn die Variable tatsächlich eine Konstante ist, was ist besser: sie zur Konstruktionszeit initialisieren oder bei Deklaration initialisieren?
Die Antworten auf die Frage, die ich oben erwähnt habe, weisen generell darauf hin, dass die Variable static
erstellt wird, sobald Sie sie bei der Deklaration zuweisen können. Das macht für mich keinen Sinn, da die Variablen nicht in einem statischen Kontext verwendet werden. Ich habe ein paar Bilder, die mein Formular wie Symbole verwendet, ich habe diese statisch gemacht, weil ein Bild einfach eine statische Sache ist, es sei denn, Ihre Anwendung modifiziert sie. Das macht Sinn.
Auf der anderen Seite sind die Action
s neue Instanzen einer benutzerdefinierten inneren Klasse. Sehr technisch sind sie auch statisch, aber es fühlt sich einfach anders an. Sie müssen einfach nicht im statischen Kontext imo verfügbar sein. Also setze ich:
private final CustomAction customAction = new CustomAction();
Oder initialisiere ich es im Konstruktor? Welches ist besser? Oder denke ich den falschen Weg über static
?
+1 für Ihre Forschung im Voraus –
Wenn Sie den Wert kennen, wenn Sie Code bei der Deklaration initialisieren. Sonst beim Aufbau. – titogeo