본문 바로가기
Kotlin

[Kotlin] @JvmField

by Nhahan 2025. 3. 20.

@JvmField

코틀린 컴파일러가 getter / setter 를 자동으로 생성하지 못하도록 막고, 필드를 곧바로 접근하게끔 한다.

 

class Corporation(
        val name: String,
        @JvmField val location: String
)

는 아래와 같이 자바로 컴파일 된다.

public static void main(String[] args) {
	Corporation company = new Corporation("회사명", "강남구");

	String name = company.getName(); // getter 접근
	String location = company.location; // 필드에 직접 접근
}

 

 

혹은, 싱글턴 객체(object declaration, 객체 선언)을 INSTANCE가 아니라 곧바로 접근 가능하게도 한다.

// @JvmField 없을 시
object MessageBroker { var maxMessagePerSecond = 0 }

// 자바 컴파일
int value = MessageBroker.INSTANCE.getMaxMessagePerSecond(); // INSTANCE 통해 접근
MessageBroker.INSTANCE.setMaxMessagePerSecond(10);

 

// @JvmField 있을 시
object MessageBroker { @JvmField var maxMessagePerSecond = 0 }

// 자바 컴파일
int value = MessageBroker.maxMessagePerSecond; // INSTANCE 없이 접근
MessageBroker.maxMessagePerSecond = 10;

 

'Kotlin' 카테고리의 다른 글

[Kotlin] @JvmField와 @JvmStatic의 차이  (0) 2025.03.20
[Kotlin] @JvmStatic  (0) 2025.03.20
[Kotlin] @JvmOverloads  (0) 2025.03.20
[Kotlin] @JvmName  (0) 2025.03.20
[Kotlin in Action] 5.4 자바 함수형 인터페이스 활용  (0) 2025.03.19

댓글