我们对前面定义的计算 24 的代码,稍作修改,可以在 Java 中调用,在通常情况下在 Java 中调用 Scala 函数非常简单,反之从 Scala 中调用 Java 代码也很简单,这是因为 Scala 代码最终也要编译成 Java class 文件。以后我们将详细介绍 Java 和 Scala 之间的互操作的用法,这里简要介绍下如何在 Java 代码中调用之前我们定义的计算 24 的算法。
在 Scala 二十四点游戏(9): 完整的代码和计算结果我们给出了完整的代码,其中的 Test 由 App 派生,如果我们希望把 Test 定义的一些方法如 cal24,cal24once 作为库函数调用,我们无需让 Test 由 App 派生,另外我们再定义 cal24once 的一个重载版本:
object Cal24 {
...
def cal24once(a:Int,b:Int,c:Int,d:Int) {
cal24once(List(a,b,c,d))
}
def hello {
println("Hello from Scala")
}
}
我们把这段代码存成 Cal24.scala. 下面我们使用 scalac 对它进行编译:
scalac Cal24.scala
然后我们列出有 scalac 编译后生成的 class 文件:
Add.class Cal24.class
Add$.class Cal24$.class
BinaryOp.class Cal24.scala
BinaryOp$class.class Divide.class