J'ai eu quelques difficultés à concevoir mes classes de cas. Une version simplifiée ressemble:Hiérarchie des classes de cas Scala
abstract class Base(s: Option[String]) {
//code
}
case class CaseClass(s: Option[String] = None) extends Base(s) {
//code
}
Et j'ai une méthode où je veux faire quelque chose comme:
def method(base : Base) = {
//code
base copy (s = Some("string"))
}
Bien sûr, je reçois:
value copy is not a member of Base
donc ce que je veux do est créer une nouvelle instance basée sur ma classe de base (qui n'est pas une classe de cas). Évidemment, on ne peut pas faire ça. Mais comment résolvez-vous cela d'une manière élégante?
Merci d'avance!
Question connexe: 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 –