답변:
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
}
}
const val
시간 상수를 컴파일 @JvmField val
하고 어떤 경우에는 대체로 사용할 수 있습니다 . 이를 통해 값이 런타임에 계산되거나 기본 유형 또는 문자열이 아닌 경우 작동하지 않습니다. 참조 : kotlinlang.org/docs/reference/…
에서 구현 한 경우 클래스 내부 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{
}
private
, java 's )이 정의가 가장 간결합니다.