尽管我已经使用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上工作。

所以是的,它将完全按照您编写的方式工作。

10-01 21:46
查看更多