Moh*_*hit 22 java scala scala-java-interop
我是Scala的新手.到目前为止,我只能编写基本代码,但我想更具体地开始使用它,而不仅仅是学习理论.
假设我在HelloWorld.java中有以下Java代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Run Code Online (Sandbox Code Playgroud)
等效的Scala代码是什么?
小智 37
在你的例子中,你只有一个main,而不是你必须从其他地方调用的函数.但是我们说你确实有类似的功能
package com.example.hello;
public class HelloWorld {
public static void sayHello() {
System.out.println("Hello, world!");
}
}
Run Code Online (Sandbox Code Playgroud)
(为了完整性,我还为你的例子添加了一个包).然后在Scala代码中,您可以执行以下操作:
import com.example.hello._
(0 until 10).foreach {
HelloWorld.sayHello()
}
Run Code Online (Sandbox Code Playgroud)
在Scala中使用Java函数10次打招呼.将._在import包的进口所有成员,或者你可以只import com.example.hello.HelloWorld.您甚至可以导入方法本身,import com.example.hello.HelloWorld.sayHello这样您就不需要HelloWorld在代码中引用该对象.
两种语言都编译成JVM字节码,因此从Scala调用Java代码非常简单,尽管如果涉及隐式参数,从Java调用Scala可能会比较棘手.