Akashic Records

@JvmStatic에 대해서 본문

Kotlin for Beginners

@JvmStatic에 대해서

Andrew's Akashic Records 2023. 6. 9. 09:43
728x90

@JvmStatic 어노테이션은 코틀린에서 제공되며, 코틀린의 함수나 변수를 Java의 정적 메소드나 변수처럼 동작하도록 만들어줍니다.

 

코틀린에서는 기본적으로 static 멤버를 가지지 않기 때문에, object나 companion object를 통해 Java에서 static처럼 동작하는 멤버를 정의할 수 있습니다. 하지만 이런 멤버들은 실제로는 자바의 정적 멤버가 아니므로, Java에서 이들을 호출할 때는 해당 object의 인스턴스를 통해 호출해야 합니다.

 

이런 경우 @JvmStatic 어노테이션을 사용하면, 코틀린의 object나 companion object 내부의 함수나 프로퍼티에 대해 자바에서 정적 멤버처럼 접근할 수 있습니다.

 

예를 들어:

class MyClass {
    companion object {
        @JvmStatic fun staticFunction() {
            println("This is a static function.")
        }
    }
}

위의 코드에서 staticFunction 메소드는 @JvmStatic 어노테이션이 붙어있기 때문에, 자바 코드에서 다음과 같이 정적 메소드처럼 호출할 수 있습니다:

 

MyClass.staticFunction();

@JvmStatic이 붙지 않았다면, Java에서 호출할 때는 MyClass.Companion.staticFunction()과 같이 호출해야 합니다.

728x90
Comments