,使之短,这个工程:斯卡拉错误执行抽象方法与类型参数
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! TIA!
虽然这是一个很好的解决方案,我说,我不想特质类型的参数,我想要推断的函数中的T型。在像这样的简单情况下的特质抽象类型像普通的类类型参数一样工作... –
嗯..有点棘手.. – Shrey
好吧,有一个小的解决方法我已经设法得到我想要的感谢您的答案,我会接受它... –