case class copy 'method' with superclass

后端 未结 7 2010
误落风尘
误落风尘 2020-12-05 07:16

I want to do something like this:

sealed abstract class Base(val myparam:String)

case class Foo(override val mypar         


        
7条回答
  •  长情又很酷
    2020-12-05 07:18

    This works fine for me:

    sealed abstract class Base { def copy(myparam: String): Base }
    
    case class Foo(myparam:String) extends Base {
      override def copy(x: String = myparam) = Foo(x)
    }
    
    def copyBase(x: Base) = x.copy("changed")
    
    copyBase(Foo("abc")) //Foo(changed)
    

提交回复
热议问题