有没有办法从Scala中的实例中删除Trait?

Ped*_*olo 4 scala traits

我想知道是否有一个在运行时添加了特征的实例,可以从实例中删除特征,因此它可以像原来一样运行.

Lex*_*Lex 5

特征在编译时与类组合.因此,无法在运行时添加/删除特征.

对于您的特定情况,请考虑向您的班级添加方法:

class Foo(val a: Object, val b: Object, ...) {
  def original() = new Foo(a, b, ...)
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以调用instance.original()以获取不受任何特征影响的对象副本.