相关疑难解决方法(0)

如何在scala中的泛型方法中创建特征实例?

我正在尝试使用此方法创建特征实例

val inst = new Object with MyTrait
Run Code Online (Sandbox Code Playgroud)

这很好用,但我想把这个创作转移到生成器函数,即.

object Creator {
  def create[T] : T = new Object with T
}
Run Code Online (Sandbox Code Playgroud)

我显然需要清单以某种方式修复类型擦除问题,但在此之前,我遇到了两个问题:

  1. 即使有一个隐含的清单,Scala仍然要求T是一个特征.如何添加限制来创建[T]以使T成为特征?

  2. 如果我选择使用Class.newInstance方法动态创建实例而不是使用"new",我如何在"new object with T"中指定"with"?是否可以在运行时动态创建新的具体mixin类型?

scala instance traits new-operator

8
推荐指数
2
解决办法
6764
查看次数

标签 统计

instance ×1

new-operator ×1

scala ×1

traits ×1