Cuando estoy diseñando objetos inmutables, las clases de casos son increíblemente prácticas debido al método autogenerado copy
.'copia' para las clases que no son de casos?
Pero las clases de caso tienen sus propios problemas: no se deben heredar y le dan un extractor aunque no lo desee.
Así que a veces tengo que usar una variedad de jardín de la clase Scala. El problema es que luego tengo que escribir mi propia API inmutable, que puede ser bastante repetitivo:
class Debt(principalBalance: Double, name: String, endDate: LocalDate) {
def withNewPrincipalBalance(bal: Double) = new Debt(bal, name, endDate)
}
¿Existe una manera más escalable para hacer esto? ¿Hay un complemento de compilación que pueda usar?
ver http://stackoverflow.com/q/3900307/203968 – oluies