You can't call new T(x)
with type parameter T
. There could be no such constructor for T
:
class WithoutSuchConstructor extends Class2[Class3](1)
You should specify method to create T
explicitly:
abstract class Class1[T <: Class2[_]: ClassTag] extends Actor {
//....
def createT(i: Int): T
val res = List(1, 2, 3) map { x => context actorOf Props(createT(x)) }
}
Alternatively:
abstract class Class1[T <: Class2[_]: ClassTag](createT: Int => T) extends Actor {
//....
val res = List(1, 2, 3) map { x => context actorOf Props(createT(x)) }
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…