Учитывая черту MyTrait
:
trait MyTrait {
def doSomething = println("boo")
}
его можно смешать в классе с extends
или with
:
class MyClass extends MyTrait
Его также можно смешивать при создании экземпляра нового экземпляра:
var o = new MyOtherClass with MyTrait
o.doSomething
Но... может ли атрибут (или любой другой, если это имеет значение) добавить к существующему экземпляру?
Я загружаю объекты с использованием JPA в Java, и я хотел бы добавить к ним некоторые функции, используя черты. Возможно ли вообще?
Я хотел бы иметь возможность смешать в признаке следующим образом:
var o = DBHelper.loadMyEntityFromDB(primaryKey);
o = o with MyTrait //adding trait here, rather than during construction
o.doSomething