zap*_*dlo 19 scala compiler-errors
无法弄清楚StrangeIntQueue扩展Queue有什么问题,为什么会出现错误"构造函数Queue没有足够的参数:( leading:Int)list.Lister.Queue [Int].未指定的值参数前导".我怎么指定它?
class Queue[+T](
private val leading: T
) {
def enqueue[U >: T](x: U) =
new Queue[U](leading: U) // ...
}
class StrangeIntQueue(private val leading: Int) extends Queue[Int] {
override def enqueue(x: Int) = {
println(math.sqrt(x))
super.enqueue(x)
}
}
Run Code Online (Sandbox Code Playgroud)
Rex*_*err 24
extends Queue[Int](leading)
Run Code Online (Sandbox Code Playgroud)
即使看起来"显而易见"该怎么做,你也必须传递论据.
另请注意,由于您已声明leading私有,因此您实际上将获得两个副本:一个用于StrangeIntQueue,一个用于Queue.(否则你可以StrangeIntQueue(leading0: Int) extends Queue[Int](leading0)使用leading内部的继承副本.)
类的主构造Queue,其StrangeIntQueue延伸,有一个参数,但你不能传递任何的参数.试试这个:
class StrangeIntQueue(leading: Int) extends Queue[Int](leading) {
// ...
}
Run Code Online (Sandbox Code Playgroud)