0

混合のために 1 つ以上の特性をパラメーター化することは可能ですか? 以下の私の例はコンパイルされませんが、IntelliJ の intellisense は実際に正しい型を考え出します。

class Student
class Students[A <: Student] {

  def create = new Student with A
}

trait Major extends Student
trait Dormitory extends Student
trait Fraternity extends Student

val onCampus = new Students[Major with Dormitory]
val fratBoys = new Students[Major with Fraternity]

onCampus.create // is a: Student with Major with Dormitory
fratBoys.create // is a: Student with Major with Fraternity
4

1 に答える 1