如何使用 trait 在 Scala 中向 class 添加新方法?
How to use trait to add new method to class in Scala?
我有第 3 方 class A:
class A {
def methodA = ...
}
我想使用 use trait 添加一个新方法 methodT 到 A
的一个实例
trait Atrait[...] {
def methodT = {
// how to get a reference of instance of type A?
}
}
这个methodT是针对某些情况的,所以我应该在trait中使用constraint。但我想不通。另外,如何在特征中调用 A
方法的实例?
更新
特质 不是这样的。请参阅替代解决方案的答案。
这是向第三方添加方法的标准模式class:
class A
implicit class ExtendedA(val a: A) extends AnyVal {
def methodT: Unit = { println("called A.methodT") }
}
那么你可以这样做:
val a = new A
a.methodT
我有第 3 方 class A:
class A {
def methodA = ...
}
我想使用 use trait 添加一个新方法 methodT 到 A
trait Atrait[...] {
def methodT = {
// how to get a reference of instance of type A?
}
}
这个methodT是针对某些情况的,所以我应该在trait中使用constraint。但我想不通。另外,如何在特征中调用 A
方法的实例?
更新
特质 不是这样的。请参阅替代解决方案的答案。
这是向第三方添加方法的标准模式class:
class A
implicit class ExtendedA(val a: A) extends AnyVal {
def methodT: Unit = { println("called A.methodT") }
}
那么你可以这样做:
val a = new A
a.methodT