Короче говоря, это работает:
object Main {
def main(args: Array[String]) {
trait T1[T] {
def f1(a: T): Double
}
val ea1 = new T1[List[String]] {
def f1(a: List[String]): Double = a.length
}
}
}
Но это не скомпилируется:
object Main {
def main(args: Array[String]) {
trait T1 {
def f1[T](a: T): Double
}
val ea1 = new T1 {
def f1(a: List[String]): Double = a.length
}
}
}
object creation impossible, since method f1 in trait T1 of type [T](a: T)Double is not defined
val ea1 = new T1 {
^
Похоже, что метод не учитывается из-за параметра типа в методе.
Как я могу добиться этого без использования параметров типа признака или абстрактных типов признака ?! TIA!