给定一个特质 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
implicit
定义一个方法,并将该方法导入到你的作用域中时,该方法可以帮助你将由方法参数指定的对象转换为由方法返回指定的另一个对象,以便在需要调用后者的未定义于前者的方法时使用。 - Googol ShanMyTrait
对象中添加一个通用参数到::
中就可以让它适用于任何类型。它是否也可以与我们想要混合的任意特性一起使用呢...? - axel22