相关疑难解决方法(0)

具有覆盖抽象类型的蛋糕模式不适用于上部类型边界

我想覆盖trait中的抽象类型<:而不是=(在这里回答Scala Upper Bounds:value不是type参数的成员).

我想用蛋糕模式,但这不起作用,我不明白为什么?

trait A {
  def ping = println("ping")
}

trait Cake {
  type T
}

trait S { this: Cake =>
  type T = A
  def t: T
  t.ping
}
Run Code Online (Sandbox Code Playgroud)

好的,这个例子运行,但在我的实际用例中,我想覆盖类型<:而不是=.It似乎无法访问t函数,为什么?

trait S { this: Cake =>
  type T <: A
  def t: T
  t.ping
}
Run Code Online (Sandbox Code Playgroud)

返回错误 value ping is not a member of S.this.T

dependency-injection scala traits cake-pattern

8
推荐指数
1
解决办法
940
查看次数