鉴于一个特点MyTrait:
trait MyTrait {
def doSomething = println("boo")
}
Run Code Online (Sandbox Code Playgroud)
它可以与extendsor 混合成一个类with:
class MyClass extends MyTrait
Run Code Online (Sandbox Code Playgroud)
它也可以在实例化一个新实例时混合:
var o = new MyOtherClass with MyTrait
o.doSomething
Run Code Online (Sandbox Code Playgroud)
但是......可以将特征(或任何其他如果产生影响的特征)添加到现有实例中吗?
我在Java中使用JPA加载对象,我想使用traits为它们添加一些功能.有可能吗?
我希望能够按如下方式混合特征:
var o = DBHelper.loadMyEntityFromDB(primaryKey);
o = o with MyTrait //adding trait here, rather than during construction
o.doSomething
Run Code Online (Sandbox Code Playgroud)