본문으로 바로가기

[Scala] Scala와 Java 연동하여 사용하기

category Backend/Scala 2022. 1. 23. 14:58

1. Java와 Scala호환

Scala와 Java 둘 다 JVM에서 동작하고 Scala와 Java 문법은 아주 유사하기 때문에 Scala는 Java의 모든 라이브러리를 사용할 수 있습니다. 따라서 서로 실행할 수 있습니다.

 

2. Java Class 와 Scala Object 호환

[자바 클래스]

public class PrintJavaClass {

    public void printJava() {
        System.out.println("Hello, Java!");
    }

    public static void printJavaStatic() {
        System.out.println("Hello, Java(Static)!");
    }

    public static void main(String[] args) {
        // Scala Object Method 실행
        PrintScalaObject.printScala();
    }
}

[스칼라 객체]

object PrintScalaObject {

  def printScala(): Unit = {
    println("Hello Scala Object Method!")
  }

  def main(args: Array[String]) {

    // 1. 자바 소스 객체 생성하여 Method 실행
    var java = new PrintJavaTest();
    java.printJava()

    // 2. 자바 소스 static Method 실행
    PrintJavaTest.printJavaStatic()
  }
}

 

3. Java Class 와 Scala Class 호환

[자바 클래스]

public class PrintJavaClass {

    public void printJava() {
        System.out.println("Hello, Java!");
    }

    public static void printJavaStatic() {
        System.out.println("Hello, Java(Static)!");
    }

    public static void main(String[] args) {

        // 1. 스칼라 클래스 소스 객체 생성하여 Method 실행
        PrintScalaClass printScalaClass = new PrintScalaClass();

        printScalaClass.main(args);
        printScalaClass.PrintScala();
    }
}

[스칼라 클래스]

class PrintScalaClass {

  def main(args: Array[String]): Unit = {

    // 1. 자바 소스 객체 생성하여 Method 실행
    var printJavaClass = new PrintJavaClass()
    printJavaClass.printJava()

    // 2. 자바 소스 static Method 실행
    PrintJavaClass.printJavaStatic();
  }

  def PrintScala(): Unit = {
    println("Hello, Scala Class!")
  }
}