隐式类不能适用于自我类型?

时间:2015-10-16 14:39:34

标签: scala implicit-conversion traits

我已经定义了一个类和一个隐式类:

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。谢谢大家。

idea-error

1 个答案:

答案 0 :(得分:1)

不好,但你总是可以明确地调用隐含的(双关语)

trait UserTrait {
  this: User =>

  implicitly[RichUser](this).hello 
}