Scala类型推断:无法从Array [T]推断IndexedSeq [T]

克里斯

Scala中2.11.2,下面的最小例如使用当仅编译类型归属Array[String]

object Foo {    

  def fromList(list: List[String]): Foo = new Foo(list.toArray : Array[String])   

}

class Foo(source: IndexedSeq[String])    

如果我删除中的类型说明fromList,它将无法编译并出现以下错误:

Error:(48, 56) polymorphic expression cannot be instantiated to expected type;
 found   : [B >: String]Array[B]
 required: IndexedSeq[String]
  def fromList(list: List[String]): Foo = new Foo(list.toArray)
                                                       ^

为什么编译器不能在Array[String]这里推断还是这个问题与从Array的隐式转换有关IndexedSeq

内特

问题在于该.toArray方法返回某种类型的Array,B它是Tin的超类List[T]这使您可以使用list.toArrayList[Bar],其中一个Array[Foo]是否需要Bar延长Foo

是的,这个开箱即用的真正原因是编译器试图弄清楚B使用哪个以及如何获取IndexedSeq似乎正在尝试解决IndexedSeq[String]要求,但B只能保证它是的一个String或超类String因此错误。

这是我首选的解决方法:

def fromList(list: List[String]): Foo = new Foo(list.toArray[String])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala存在-类型不匹配,无法推断T =:= T

来自分类Dev

无法推断通用参数“ T”

来自分类Dev

为什么在通用函数类型参数推断中,Scala无法将Null类型识别为T的子类型?

来自分类Dev

Scala从Array [T]隐式转换为IndexedSeq [T]

来自分类Dev

从Array [T]到IndexedSeq [T]的Scala隐式转换

来自分类Dev

该方法如何推断<T>的类型

来自分类Dev

如何动态推断Action <T>的类型?

来自分类Dev

无法推断通用参数“ T”的参数

来自分类Dev

无法推断出“ T”的模板参数

来自分类Dev

Swift通用参数“ T”无法推断

来自分类Dev

分配后无法推断通用参数“ T”

来自分类Dev

无法推断出“ T”的模板参数

来自分类Dev

Swift:无法推断通用参数“T”

来自分类Dev

当在结构定义中明确指定类型时,无法推断类型参数T的类型

来自分类Dev

Scala:如何让编译器从Seq [T]类型的函数参数推断类型?

来自分类Dev

java.io.BufferedReader()。map无法从<Stream>推断<T>的类型参数(Stream <?扩展T>)

来自分类Dev

如果类型T和U相同,则功能模板无法推断类型

来自分类Dev

如何从 Class<T> 推断 T 的方法

来自分类Dev

如何从 Vector[T] 推断参数 T

来自分类Dev

类型不匹配:推断的类型为T但kotlin。

来自分类Dev

T是有条件的时,TypeScript无法推断通用类型

来自分类Dev

错误无法推断类型参数“ T”。使用Map.fromIterable时

来自分类Dev

无法从用法推断方法 JsonHelper.FromJson<T>(string) 的类型参数

来自分类Dev

为什么Scala无法推断_的类型?

来自分类Dev

Scala方法无法推断返回类型

来自分类Dev

类型推断失败:没有足够的信息来推断Kotlin的Paypal付款中的参数T

来自分类Dev

类型推断-无法推断Monad

来自分类Dev

IEnumerable <Func <T,S >>和LINQ类型推断

来自分类Dev

没有足够的信息来推断类型变量T

Related 相关文章

  1. 1

    Scala存在-类型不匹配,无法推断T =:= T

  2. 2

    无法推断通用参数“ T”

  3. 3

    为什么在通用函数类型参数推断中,Scala无法将Null类型识别为T的子类型?

  4. 4

    Scala从Array [T]隐式转换为IndexedSeq [T]

  5. 5

    从Array [T]到IndexedSeq [T]的Scala隐式转换

  6. 6

    该方法如何推断<T>的类型

  7. 7

    如何动态推断Action <T>的类型?

  8. 8

    无法推断通用参数“ T”的参数

  9. 9

    无法推断出“ T”的模板参数

  10. 10

    Swift通用参数“ T”无法推断

  11. 11

    分配后无法推断通用参数“ T”

  12. 12

    无法推断出“ T”的模板参数

  13. 13

    Swift:无法推断通用参数“T”

  14. 14

    当在结构定义中明确指定类型时,无法推断类型参数T的类型

  15. 15

    Scala:如何让编译器从Seq [T]类型的函数参数推断类型?

  16. 16

    java.io.BufferedReader()。map无法从<Stream>推断<T>的类型参数(Stream <?扩展T>)

  17. 17

    如果类型T和U相同,则功能模板无法推断类型

  18. 18

    如何从 Class<T> 推断 T 的方法

  19. 19

    如何从 Vector[T] 推断参数 T

  20. 20

    类型不匹配:推断的类型为T但kotlin。

  21. 21

    T是有条件的时,TypeScript无法推断通用类型

  22. 22

    错误无法推断类型参数“ T”。使用Map.fromIterable时

  23. 23

    无法从用法推断方法 JsonHelper.FromJson<T>(string) 的类型参数

  24. 24

    为什么Scala无法推断_的类型?

  25. 25

    Scala方法无法推断返回类型

  26. 26

    类型推断失败:没有足够的信息来推断Kotlin的Paypal付款中的参数T

  27. 27

    类型推断-无法推断Monad

  28. 28

    IEnumerable <Func <T,S >>和LINQ类型推断

  29. 29

    没有足够的信息来推断类型变量T

热门标签

归档