Scala:如何要求类型具有无参数构造函数

时间:2017-08-12 20:35:16

标签: scala

在Scala中,在以下上下文中:

class MyClass[T] {
}

如何将T限制为具有无参数/默认构造函数的类? 感谢

1 个答案:

答案 0 :(得分:1)

宁愿使用类型类方法,需要有一个无参数的工厂。

trait Factory[T] {
  def create(): T
}

class Foo() {
}

object Foo {
  // Define Factory instance for Foo
  implicit val factory: Factory[Foo] = new Factory[T] {
    def create() = new Foo()
  }
}

class MyClass[T : Factory] {
  // accept only T with Factory[T] available
}