У меня возникли трудности с проектированием классов case. Упрощенная версия выглядит следующим образом:Иерархия классов шкалы Scala
abstract class Base(s: Option[String]) {
//code
}
case class CaseClass(s: Option[String] = None) extends Base(s) {
//code
}
И у меня есть метод, где я хочу сделать что-то вроде:
def method(base : Base) = {
//code
base copy (s = Some("string"))
}
Конечно, я получаю:
value copy is not a member of Base
Так что я хочу do - создать новый экземпляр, основанный на моем базовом классе (который не является классом case). Очевидно, этого нельзя сделать. Но как бы вы решили это элегантным способом?
Заранее спасибо!
Связанный вопрос: 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 –