结构类型有上限?

Cha*_*ton 4 types scala

考虑我需要使用的库的设计,无法修复:

trait Foo

class IgnoreMe extends Foo
class A extends Foo { def bar: A = ...}
class B extends Foo { def bar: B = ...}
Run Code Online (Sandbox Code Playgroud)

在我的代码中:

object Stuff {
  type Barred = { def bar: Foo }

  def doStuff(b:Barred) = b.bar
}
Run Code Online (Sandbox Code Playgroud)

这一切都很好,除了Stuff.doStuff将接受任何符合Barred类型的东西,而不仅仅是我想要的Foo的子类型.

我想定义Barred这样它既是Foo的子类型又有一个bar方法,我不能:(帮助赞赏.

Did*_*ont 9

只是

type Barred = Foo {def bar: Foo }
Run Code Online (Sandbox Code Playgroud)