我已经定义了一个类和一个隐式类:
class User
implicit class RichUser(user: User) {
def hello = println("hello")
}
以下代码运作良好:
val user = new User
user.hello
但以下代码无法编译:
trait UserTrait {
this: User =>
this.hello // can't compile !!!
}
为什么不能编译,以及如何修复它?
更新
抱歉,它无法在IntelliJ IDEA中编译,我没有尝试使用scalac
。谢谢大家。
答案 0 :(得分:1)
不好,但你总是可以明确地调用隐含的(双关语)
trait UserTrait {
this: User =>
implicitly[RichUser](this).hello
}