Kotlin for Beginners
@JvmStatic에 대해서
Records that rule memory
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