Scala:将泛型类型参数约束到另一个参数中的类型

时间:2011-09-28 09:26:31

标签: generics scala bounds

我仍在努力掌握Scala语言,所以请耐心等待我和我的所有问题。

我可以从绑定中的一个类型参数引用另一个的抽象类型吗?例如,有没有一种方法可以使下面的代码工作?我在这里想要实现的本质是C的MAP参数的KEY应该是参数T的SomeType。

trait T1 { 
    type SomeType;
}

trait MyMap[KEY, VALUE] { ... }


class C { 
  def m[T <: T1, MAP <: MyMap[T.SomeType, Int]] { ... }
}    

1 个答案:

答案 0 :(得分:6)

您需要type projection

def m[T <: T1, MAP <: MyMap[T#SomeType, Int]]