Wir verwenden derzeit den Map-basierten Konstruktor in einer @Immutable-Klasse und übergeben alle Feldwerte während der Instantiierung. Ich möchte sinnvolle Standardwerte für Felder festlegen, falls der Benutzer während der Instanziierung keinen Wert für sie angibt.Wie erstellt man eine @Immutable Groovy-Klasse mit Standard-Fallback-Werten für Felder?
Gibt es einen groovigen Weg (eine einfache Möglichkeit), es zu tun?
Ah, aus irgendeinem Grund, den ich hatte den Eindruck, dass diese Felder waren 'final' (mein schlecht). Vielen Dank. – phani
Die Felder * sind * endgültig. In dem Beispiel gibt es nichts, was darauf hindeutet, dass dies nicht der Fall ist. Doc: http://docs.groovy-lang.org/latest/html/gapi/groovy/transform/Immutable.html –
@MichaelOster Im obigen Beispiel wird dem Feld 'name' zweimal ein Wert zugewiesen: einmal zu der Zeit der Deklaration und ein weiteres Mal im impliziten map-basierten Konstruktor. Das ist für 'final' Variablen nicht erlaubt (zumindest in Java; ich bin neu in Groovy). Bitte korrigieren Sie mich, wenn ich etwas verpasse. – phani