如何将上下文绑定TypeTags添加到采用类型参数的类型?

时间:2014-01-22 09:15:28

标签: scala

给出一个课程:

class MyClass[A, B[A] <: SomeClass[A]](...) { ... }

我想在A和B [A]中添加类型标签。

然而,

class MyClass[A: TypeTag, B[A] <: SomeClass[A]: TypeTag]

抱怨B采取类型参数。添加隐式TypeTag [B [A]]似乎可行,但我需要它为某些清单转换绑定上下文。

1 个答案:

答案 0 :(得分:4)

如果只有B[A]并且类B[OtherClass]的签名中没有B[_]MyClass,您可以使用B代替{{ 1}}:

B[A]

这是一个带有class MyClass[A: TypeTag, B <: SomeClass[A]: TypeTag](sc: B, e: A) new MyClass(new SomeClass[String], "a") // MyClass[String,SomeClass[String]] = MyClass@790e79dc 的丑陋解决方案,但我想你应该只使用隐式参数:

B[A]