在Scala

时间:2017-06-29 23:26:12

标签: scala types traits

我经常想在Scala中指定另一个类型约束。以下是我最近尝试做的事情的简化示例:

trait Foo[K] {
    def apply(key: K): Int

    trait ByID[E <: HasID] where K <: ID[E] {
      def apply(key: E) = Foo.this.apply(key.id)
    }
}

当然语法不起作用,但我怎样才能实现呢?我希望它在不要求的情况下推断E,在ID[...]K时从ID的类型参数中提取它。如果K不是ID,则ByID类不应该可用。

0 个答案:

没有答案