【发布时间】:2011-04-23 00:55:05
【问题描述】:
给定一个特征MyTrait:
trait MyTrait {
def doSomething = println("boo")
}
它可以与extends或with混合成一个类:
class MyClass extends MyTrait
也可以在实例化新实例时混合:
var o = new MyOtherClass with MyTrait
o.doSomething
但是...可以将特征(或任何其他如果有影响的话)添加到现有实例中吗?
我正在使用 Java 中的 JPA 加载对象,我想使用特征向它们添加一些功能。有可能吗?
我希望能够混合如下特征:
var o = DBHelper.loadMyEntityFromDB(primaryKey);
o = o with MyTrait //adding trait here, rather than during construction
o.doSomething
【问题讨论】: