嗨所以我有一个带有泛型+ T和+ U的特性。
utf8mb4_unicode_ci
第一个工作正常。 然而最后两个都吐了出来:
def test[I >: T, V >: U](e: Traversable[I], f: V)
def test[I >: T, V >: U](e: (Traversable[I], V))
def test[I >: T, V >: U](e: Tuple2[Traversable[I], V])
为什么scala不能推断出第二和第三个例子中的类型?我错过了什么?
由于
答案 0 :(得分:1)
这对我来说看起来像编译错误。在第一种情况下,我没有看到它可以将String
转换为Traversable
的原因,而不是其他两种情况。
答案 1 :(得分:0)
此代码在Scala 2.12.3中编译时没有错误:
trait MyTrait[+T, +U] {
def test[I >: T, V >: U](e: Traversable[I], f: V)
def test1[I >: T, V >: U](e: (Traversable[I], V))
def test2[I >: T, V >: U](e: Tuple2[Traversable[I], V])
}