Como instanciar uma instância do tipo representada pelo parâmetro type no Scala
exemplo:
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
.
.
.
Observe que o segundo erro mostra que ele sabe que os itens do ator são "T" s, mas não que o "T" é uma subclasse do ator, conforme restrito na definição genérica da classe.
Como esse código pode ser corrigido para funcionar (usando o Scala 2.8)?