gpt4 book ai didi

scala - 找不到元素类型 T 的类 list

转载 作者:行者123 更新时间:2023-12-03 14:07:05 25 4
gpt4 key购买 nike

试图从 this SO question 编译一些代码并遇到此错误消息 cannot find class manifest for element type T .这是另一个显示行为的片段:

scala> def f[T](a:T, b:T):Array[T] = { new Array[T](2) }
<console>:4: error: cannot find class manifest for element type T
def f[T](a:T, b:T):Array[T] = { new Array[T](2) }

我可以看到 new collection.mutable.GenericArray[T](2)解决了这个问题。显然提供 list 是另一种选择......但是“提供 list 意味着”是什么?

最佳答案

要提供类型信息,您可以使用上下文绑定(bind)

def f[T : Manifest](a:T, b:T):Array[T] = { new Array[T](2) }

或作为隐含参数的 list :
def f[T](a:T, b:T)(implicit manifest : Manifest[T]) : Array[T] = { new Array[T](2) }

前者是后者的语法糖。 manifest需要,因为由于泛型 type errasure 而缺少关于 T 的类型信息的JVM。

关于scala - 找不到元素类型 T 的类 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2252641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com