您似乎无法使用SAM语法初始化数组。当我尝试以下内容时......
trait A {
def num(): Int
}
trait B extends A
trait C extends A
val nums: Array[A] = Array(() => 5)
我收到以下错误...
<console>:12: error: type mismatch;
found : () => Int
required: A
val nums: Array[A] = Array(() => 5)
预计会出现这种情况吗?
答案 0 :(得分:1)
它适用于Scala 2.12,但Scala 2.11中的SAM支持不完整(这就是为什么它在-Xexperimental
下)。对于Scala 2.11,您可以使用
Array[A](() => 5)
作为解决方法。