Cleaner Weg, um verschachtelte Strukturen zu aktualisieren

Sag ich habe folgende zweicase classes:

case class Address(street: String, city: String, state: String, zipCode: Int)
case class Person(firstName: String, lastName: String, address: Address)

und die folgende Instanz vonPerson Klasse:

val raj = Person("Raj", "Shekhar", Address("M Gandhi Marg", 
                                           "Mumbai", 
                                           "Maharashtra", 
                                           411342))

Nun wenn ich updaten möchtezipCode vonraj dann muss ich machen:

val updatedRaj = raj.copy(address = raj.address.copy(zipCode = raj.address.zipCode + 1))

Mit mehr Verschachtelungsebenen wird dies noch hässlicher. Gibt es einen saubereren Weg (so etwas wie Clojure'supdate-in) um solche verschachtelten Strukturen zu aktualisieren?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage