例子:
请注意,第二个错误显示它知道演员项目是“T”,但不知道“T”是演员的子类,如在类泛型定义中所限制的那样。
如何更正此代码以使其工作(使用Scala 2.8)?
import scala.actors._
import Actor._
class BalanceActor[T <: Actor] extends Actor {
val workers: Int = 10
private lazy val actors = new Array[T](workers)
override def start() = {
for (i <- 0 to (workers - 1)) {
// error below: classtype required but T found
actors(i) = new T
actors(i).start
}
super.start()
}
// error below: method mailboxSize cannot be accessed in T
def workerMailboxSizes: List[Int] = (actors map (_.mailboxSize)).toList
.
.
.
请注意,第二个错误显示它知道演员项目是“T”,但不知道“T”是演员的子类,如在类泛型定义中所限制的那样。
如何更正此代码以使其工作(使用Scala 2.8)?