如何使用trait向Scala中的类添加新方法?

Dav*_* S. 0 scala traits

我有第三方A班:

class A {
  def methodA = ...
}
Run Code Online (Sandbox Code Playgroud)

我想使用use trait将新方法methodT添加到一个实例中A

trait Atrait[...] {
  def methodT = {
    // how to get a reference of instance of type A?
  }
}
Run Code Online (Sandbox Code Playgroud)

这个方法T特定于某些情况,所以我应该在特征中使用约束.但我无法理解.另外,如何A在特征中调用方法的实例?

UPDATE

特质不会这样.查看替代解决方案的答案.

dhg*_*dhg 6

这是将方法添加到第三方类的标准模式:

class A

implicit class ExtendedA(val a: A) extends AnyVal {
  def methodT: Unit = { println("called A.methodT") }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

val a = new A
a.methodT
Run Code Online (Sandbox Code Playgroud)