黑猴子的家:Scala 自身类型

主要是为了解决特质的循环依赖问题,同时可以确保特质在不扩展某个类的情况下,依然可以做到限制混入该特质的类的类型。

1、自身类型案例一

//自身类型特质
trait Logger11{
  this: Exception =>
  def log(): Unit ={
    println(getMessage)
  }
}

2、自身类型案例二

class Outter{
  outter =>
  val a = 10
  class Inner{
    inner =>
    val a = 20
    def myprintln(): Unit ={
      println(outter.a)
    }
  }
}

这样一来,在该特质中,可以随意调用“自身类型”中的各种方法

转载于:https://www.jianshu.com/p/a8f9e7d114cd

猜你喜欢

转载自blog.csdn.net/weixin_34177064/article/details/91182509