サブタイプを含むリストを参照し、そのリストから要素を引き出し、それらを暗黙的にキャストする必要があります。例は次のとおりです。スカラリストとサブタイプ
scala> sealed trait Person { def id: String }
defined trait Person
scala> case class Employee(id: String, name: String) extends Person
defined class Employee
scala> case class Student(id: String, name: String, age: Int) extends Person
defined class Student
scala> val x: List[Person] = List(Employee("1", "Jon"), Student("2", "Jack", 23))
x: List[Person] = List(Employee(1,Jon), Student(2,Jack,23))
scala> x(0).name
<console>:14: error: value name is not a member of Person
x(0).name
^
は私がx(0).asInstanceOf[Employee].name
が、私はそこに期待していたが、種類とよりエレガントな方法だったことを知っています。前もって感謝します。
この場合、あなたはまた、単に形質に 'name'のフィールドを追加することができます。 – drexin