[java] Kotlin의 자바 정적 최종 필드에 해당하는 것은 무엇입니까?

Java에서 상수를 선언하려면 다음과 같이합니다.

class Hello {
    public static final int MAX_LEN = 20;
}

Kotlin에서 동등한 것은 무엇입니까?



답변

Kotlin 문서 에 따르면 이것은 동일합니다.

class Hello {
    companion object {
        const val MAX_LEN = 20
    }
}

용법:

fun main(srgs: Array<String>) {
    println(Hello.MAX_LEN)
}

또한 이것은 정적 최종 속성 (게터가있는 필드)입니다.

class Hello {
    companion object {
        @JvmStatic val MAX_LEN = 20
    }
}

마지막으로 이것은 정적 최종 필드입니다.

class Hello {
    companion object {
        @JvmField val MAX_LEN = 20
    }
}


답변

에서 구현 한 경우 클래스 내부 Hello에서 사용하십시오.companion object

class Hello {
  companion object {
    val MAX_LEN = 1 + 1
  }

}

Hello순수한 싱글 톤 객체 라면

object Hello {
  val MAX_LEN = 1 + 1
}

속성이 컴파일 타임 상수 인 경우 const키워드 추가

object Hello {
  const val MAX_LEN = 20
}

Java에서 사용하려면 @JvmStatic주석을 추가하십시오.

object Hello {
  @JvmStatic val MAX_LEN = 20
}


답변

나를 위해

object Hello {
   const val MAX_LEN = 20
}

많은 상용구였습니다. 다음과 같이 클래스 위에 정적 최종 필드를 간단하게 넣습니다.

val MIN_LENGTH = 10

class MyService{
}


답변