在Scala中,您可以使用变量引用其他类或特征来创建实例吗?

Elo*_*noa 2 reflection scala class instance traits

我想创建一个带有变量的实例,指定下面的一些特征,这会给你一个错误.无论如何在scala中这样做?

var traitRefer = classOf[SomeTrait]
var a = new SomeClass() with traitRefer
Run Code Online (Sandbox Code Playgroud)

dre*_*xin 7

除了反思之外,我认为没有办法做到这一点,因为这不是类型安全的.你可以做的是创建一个在模式匹配中混合了特定特征的实例.例如

kind match {
  case "Foo" => new SomeClass with Foo
  case "Bar" => new SomeClass with Bar
}
Run Code Online (Sandbox Code Playgroud)