You cannot call new T(x) with a parameter of type T There can be no such constructor for T :
class WithoutSuchConstructor extends Class2[Class3](1)
You must specify a 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)) } }
As an alternative:
abstract class Class1[T <: Class2[_]: ClassTag](createT: Int => T) extends Actor { //.... val res = List(1, 2, 3) map { x => context actorOf Props(createT(x)) } }
senia
source share