Ho avuto alcune difficoltà nella progettazione delle mie case classes. Una versione semplificata assomiglia:Gerarchia classe case Scala
abstract class Base(s: Option[String]) {
//code
}
case class CaseClass(s: Option[String] = None) extends Base(s) {
//code
}
e ho un metodo in cui voglio fare qualcosa di simile:
def method(base : Base) = {
//code
base copy (s = Some("string"))
}
Naturalmente ottengo:
value copy is not a member of Base
Quindi quello che voglio do è creare una nuova istanza in base alla mia classe base (che non è una classe case). Ovviamente non si può fare questo. Ma come risolverebbe questo in modo elegante?
Grazie in anticipo!
questione connessa: http://stackoverflow.com/questions/2911562/case-class-copy-method-abstraction –
http://scala-programming-language.1934581.n4.nabble.com/Question-on- case-class-and-copy-method-td1936310.html –