尽管我已经使用Scala一段时间,并且之前已经将它与Java混合使用,但是我遇到了一个问题。
如何将Java数组传递给Scala?我知道相反的方法非常简单。从Java到Scala并非如此。
我应该在Scala中声明我的方法吗?
这是我要实现的目标的一个小示例:
Scala:
def sumArray(ar: Array[Int]) = ...
Java的:
RandomScalaClassName.sumArray(new int[]{1,2,3});
这可能吗?
最佳答案
绝对地!
Scala中的Array[T]
类直接映射到Java类型T[]
。它们在字节码中具有完全相同的表示形式。
至少在2.8中是如此。 2.7中的情况略有不同,涉及很多阵列装箱,但理想情况下,您现在应该在2.8上工作。
所以是的,它将完全按照您编写的方式工作。