在Scala中使用Java库

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可能会比较棘手.