Черты объединяются с классами во время компиляции. Поэтому невозможно добавлять / удалять черты во время выполнения.
Для вашего конкретного случая рассмотрите возможность добавления метода в ваш класс:
class Foo(val a: Object, val b: Object, ...) {
def original() = new Foo(a, b, ...)
}
Затем вы можете позвонить instance.original()
, чтобы получить копию вашего объекта, на которую не влияют никакие черты.