定义类型参数这是一个子类&实现2个特征

时间:2015-11-28 19:25:01

标签: scala

给出一些特征:

scala> sealed trait Foo
defined trait Foo

scala> sealed trait Parent
defined trait Parent

scala> case class Kid(name: String) extends Parent
defined class Kid

scala> sealed trait HasNickname
defined trait HasNickname

我尝试定义一个方法,它使A满足:

  • Parent
  • 的子类
  • 实施特质HasNickname
  • 实施特质Foo

但是我遇到了编译时错误:

scala> def f[A <: Parent : Foo with HasNickname](x: A): A = ???
<console>:14: error: Foo with HasNickname does not take type parameters
       def f[A <: Parent : Foo with HasNickname](x: A): A = ???
                         ^

如何修改f以符合上述条件?

0 个答案:

没有答案