Пример:
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
.
.
.
Обратите внимание, что вторая ошибка показывает, что он знает, что элементы-участники являются "Т", но не "Т" - это подкласс актора, как ограниченный в определении общего класса.
Как можно исправить этот код для работы (используя Scala 2.8)?