Using Java libraries in Scala

僤鯓⒐⒋嵵緔 提交于 2019-11-29 16:26:57

问题


I am a new to Scala. I am only able to write basic code thus far, but I want to start using it more concretely, rather than just learning theory.

Lets say I have the following Java code in HelloWorld.java:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}

What would the equivalent Scala code be?


回答1:


In your example, you just have a main, not a function you would necessarily call from somewhere else. But let's said you did have a function like

package com.example.hello;

public class HelloWorld {
  public static void sayHello() {
    System.out.println("Hello, world!");
  }
}

(I also added a package for your example, for completeness). Then in your Scala code, you could do:

import com.example.hello._

(0 until 10).foreach {
  HelloWorld.sayHello()
}

to say hello using the Java function 10 times in Scala. The ._ in the import imports all members of the package, or alternatively you could just import com.example.hello.HelloWorld. You could even import the method itself with import com.example.hello.HelloWorld.sayHello so that you don't need to reference the HelloWorld object in your code.

Both languages compile into JVM bytecode, so calling Java code from Scala is very simple, although calling Scala from Java can be trickier if there are are implicit parameters involved.




回答2:


The equivalent code would be:

object HelloWorld extends App {
  println("Hello, world!")
}

If you saved that code in a file called HelloWorld.scala then you could compile and run it like so:

$ scalac HelloWorld.scala

$ scala HelloWorld
Hello, world!

Or if you are working in the REPL:

scala> :paste
// Entering paste mode (ctrl-D to finish)

object HelloWorld extends App {
  println("Hello, world!")
}

// Exiting paste mode, now interpreting.

defined module HelloWorld

scala> HelloWorld.main(Array.empty[String])
Hello, world!



回答3:


object HelloWorld{
      def main(args: Array[String]): Unit = {
      println("hello world")
    }

}

or

object HelloWorld extends App {
  println("Hello, world!")
}


来源:https://stackoverflow.com/questions/15507101/using-java-libraries-in-scala

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!