试图从这个SO问题编译一些代码并遇到此错误消息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) }
Run Code Online (Sandbox Code Playgroud)
我可以看到new collection.mutable.GenericArray[T](2)解决了这个问题.显然提供清单是另一种选择......但是"提供明显的意思"是什么?
Tho*_*ung 19
要提供类型信息,您可以使用上下文绑定
def f[T : Manifest](a:T, b:T):Array[T] = { new Array[T](2) }
Run Code Online (Sandbox Code Playgroud)
或清单作为隐含参数:
def f[T](a:T, b:T)(implicit manifest : Manifest[T]) : Array[T] = { new Array[T](2) }
Run Code Online (Sandbox Code Playgroud)
前者是后者的语法糖.该清单是必要的,因为关于T上的类型信息,由于缺少通用型errasure JVM的.
| 归档时间: |
|
| 查看次数: |
3750 次 |
| 最近记录: |