在scala中创建case类的子类

时间:2017-08-21 15:13:20

标签: scala case-class

我想创建案例类Grp的子类型,例如GrpA GrpB

案例类继承是不可能的。   任何建议创建其子类型。

trait Value

// define these in different files if you want
case class Student(value: String) extends Value
case class Employee(value: Double) extends Value
case class Department(value: Int) extends Value

case class Element(key: String, value: Value)

case class Grp (elements: List[Element] = Nil) extends Value {
  def add (key: String, value: Value): Grp = Grp(this.elements ++ List(Element(key, value)))

}

Grp()
  .add("2", Student("abc"))
  .add("3", Employee(100.20))
  .add("4", Department(10))
  .add("5", Grp().add("2", Student("xyz"))) // nested group

0 个答案:

没有答案