我想从 Scala 的不可变 Map 派生。它是这样定义的:
trait Map[A, +B]
不幸的是,我的实现需要在 B 中保持不变。我尝试了以下方法,但没有成功:
def +(kv : (A, B)) : MyMap[A, B] = { ... }
override def +[B1 >: B](kv : (A, B1)) : MyMap[A, B1] =
throw new IllegalArgumentException()
也许有一个技巧@uncheckedVariance
?