我有第三方A类:
class A {
def methodA = ...
}
我想使用use trait将新方法 methodT 添加到A
的实例
trait Atrait[...] {
def methodT = {
// how to get a reference of instance of type A?
}
}
这个 methodT 特定于某些情况,所以我应该在特征中使用约束。但我无法理解。另外,如何在特征中调用A
方法的实例?
更新
Trait 不会以这种方式工作。请参阅答案以了解替代解决方案。
答案 0 :(得分:6)
这是将方法添加到第三方类的标准模式:
class A
implicit class ExtendedA(val a: A) extends AnyVal {
def methodT: Unit = { println("called A.methodT") }
}
然后你可以这样做:
val a = new A
a.methodT