我想创建一个带有类型参数的方法,显然它的构造函数上没有参数,并返回一个用该构造函数构造的虚拟对象。基本上是某种工厂模式。
- 这在 Scala 中是否可行?
- 这是一个好主意吗?如果不是,还有更好的模式吗?
- 有没有办法仅在编译时实现这一点(即没有反射)?
代码示例:
trait Model
class A extends Model
class B extends Model
def dummy[T <: Model] = new T // Fails compilation with "class type required but T found"
dummy[A] // Returns an instance of A
dummy[B] // Returns an instance of B