-
说明
:这里介绍目前为止遇到的情况,当然还有其他情况可能没有列举出来,欢迎提出
- 在trait中使用
trait User {
def name :String
}
trait B {
this : User => // 这里self-type使用this关键字,也可以是其他任意名字
def foo() {
println(name)
}// 同样后边的name也不需要手动增加前缀 this.name,会被识别为this.name。
}
- 在使用trait B的时候:
这里必须有 with User,否则报 Main.type 不符合 B's selftype B with User
object Main extends B with User {
override def name = "whj";
}
- 与
依赖注入
的关系
后续补充
可参考链接: http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/