- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
定义以下代码:
import scala.collection.JavaConversions._
val iter:java.util.Iterator[Any] = Array[Any](1, 2, 3).iterator
def func(a:Any):String = a.toString
def test[T:ClassManifest](iter:java.util.Iterator[Any], func:Any=>T):Array[T] =
iter.map(i=>func(i)).toArray
def testFunc = test(iter, func)
ClassManifest
使其正确编译,否则我会收到错误消息:
scala> def test[T](iter:java.util.Iterator[Any], func:Any=>T):Array[T] =
| iter.map(i=>func(i)).toArray
<console>:11: error: could not find implicit value for evidence parameter of
type ClassManifest[T]
iter.map(i=>func(i)).toArray
^
List
不需要这个并且编译得很好。
import scala.collection.JavaConversions._
val iter:java.util.Iterator[Any] = Array[Any](1, 2, 3).iterator
def func(a:Any):String = a.toString
def test1[T](iter:java.util.Iterator[Any], func:Any=>T):List[T] =
iter.map(i=>func(i)).toList
def testFunc1 = test1(iter, func).toArray
testFunc
的最终输出和
testFunc1
是相同的。
List
版本不需要
ClassManifest
?
最佳答案
Java 中的数组不会被类型删除,特别是 Array[Int]
不同于 Array[Object]
在 JVM 级别。
对于任何其他类,类型参数被删除为 Object
, 所以 List[Int]
和 List[Object]
在 JVM 级别具有相同的表示。
关于scala - 为什么 Array 需要 ClassManifest 而不是 List?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850976/
假设我需要提供一个带有 java.lang.Class 的方法表示某个父类的子类的对象 A .我需要从另一个方法执行此操作,该方法具有一个上限类型绑定(bind)到 A 的泛型参数. 我认为这可能有效
定义以下代码: import scala.collection.JavaConversions._ val iter:java.util.Iterator[Any] = Array[Any](1,
看来我不明白一些重要的事情,也许是关于删除(该死)。 我有一个方法,我想创建大小为 n 的数组填充来自 gen 的值: def testArray[T](n: Int, gen: =>T) { v
我有一个 List[Any] 值和一个相应的 ClassManifest[_] 列表,存储值的原始类型。我如何将列表中的某些值转换回其原始类型? def cast[T](x: Any, mf: Cla
尝试在 spark 上运行示例时出现错误。谁能告诉我我需要对我的 pom.xml 做哪些更改才能使用 spark 运行程序。 最佳答案 目前 Spark 仅适用于 Scala 2.9.3。它不适用于更
我是一名优秀的程序员,十分优秀!