为什么Promise不能协变

Dom*_* N. 6 types scala future covariance promise

在Scala中,Future被定义为协变,而Promise是不变的.据说Promise几乎可以逆变(https://issues.scala-lang.org/browse/SI-7467).为什么会这样?

Lee*_*Lee 7

如果承诺是协变的,你将能够做到:

val p: Promise[Any] = Promise[String]()
p.success(1)
Run Code Online (Sandbox Code Playgroud)

由此完成Promise[String]Int这将是不安全的.