본문 바로가기

빈 구멍 채우기

[Kotlin] @JvmField : 컴파일시 게터, 세터 없애기

출처

https://kotlinlang.org/docs/java-to-kotlin-interop.html#instance-fields

 

Calling Kotlin from Java | Kotlin

 

kotlinlang.org

 


코틀린은 자동으로 필드의 getter, setter를 생성해준다. 이와 같은 생성을 @JvmFiled로 막을 수 있다.

 

코틀린 코드 : @JvmField 없이

class User(id: Int) {
    var userId: Int = id
}

 

-> 자바로 컴파일

public final class User {
   private int userId;

   public final int getUserId() {
      return this.userId;
   }

   public final void setUserId(int var1) {
      this.userId = var1;
   }

   public User(int id) {
      this.userId = id;
   }
}

 

코틀린 코드 : @JvmField와 함께

class User(id: Int) {
    @JvmField
    var userId: Int = id
}

 

-> 자바로 컴파일

public final class User {
   @JvmField
   public int userId;

   public User(int id) {
      this.userId = id;
   }
}