-2
我有一個嵌套的列表結構,我想通過列表進行迭代並打印它的自定義字符串版本遍歷目錄的列表,並收集元素爲字符串
trait Value{
def myString:String
}
case class Student(value: String) extends Value{
override def myString: String = s"Student =$value"
}
case class Employee(value: Double) extends Value{
override def myString: String = s"Employee =$value"
}
case class Department(value: Int) extends Value{
override def myString: String = s"Dept =$value"
}
case class Grp (elements: List[Value] = Nil) extends Value {
def add (value: Value): Grp = Grp(this.elements ++ List(value))
override def myString: String = ""
}
val group= Grp()
.add(Student("abc"))
.add(Employee(100.20))
.add(Department(10))
.add(Grp().add(Student("xyz"))) // nested group`e
.add(Grp().add(Employee("def")))
我想有字符串表示所述group
。如何通過group
迭代調用myString
方法
更新
輸出
Student = abc
Employee = 100.20
Department =10
Student =xyz
Employee= def
它不打印嵌套組值'學生( 「XYZ」)' – coder25
SRY是我不好,我需要更新我的問題。實際使用案例有點不同 – coder25
正如我在說明中所說的,您需要重寫併爲'Grp'類中的'myString'指定一個值。這樣,轉換將遞歸地將所有嵌套的'Grps'轉換爲字符串 – smac89