programing

Kotlin의 Java static final 필드에 해당하는 것은 무엇입니까?

copysource 2022. 10. 11. 22:40
반응형

Kotlin의 Java static final 필드에 해당하는 것은 무엇입니까?

Java에서는 상수를 선언하려면 다음과 같은 작업을 수행합니다.

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

코틀린에서는 무엇이 동등합니까?

Kotlin 문서에 따르면 이는 다음과 같습니다.

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

사용방법:

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

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

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
}

속성이 컴파일 시간 상수인 경우 키워드를 추가합니다.

object Hello {
  const val MAX_LEN = 20
}

Java에서 사용하려면 주석을 추가합니다.

object Hello {
  @JvmStatic val MAX_LEN = 20
}

나를 위해.

object Hello {
   const val MAX_LEN = 20
}

보일러 플레이트가 너무 많았어요나는 정적인 최종 필드를 우리 반 위에 이렇게 간단히 놓는다.

private val MIN_LENGTH = 10 // <-- The `private` scopes this variable to this file. Any class in the file has access to it.

class MyService{
}

언급URL : https://stackoverflow.com/questions/40352879/what-is-the-equivalent-of-java-static-final-fields-in-kotlin

반응형