programing

코틀린의 정적 초기화 블록

minecode 2023. 2. 3. 21:04
반응형

코틀린의 정적 초기화 블록

Kotlin의 정적 초기화 블록과 동등한 것은 무엇입니까?

코틀린은 정전기 방지용으로 설계되어 있는 것은 알고 있습니다.동등한 의미론을 가진 것을 찾고 있습니다.클래스가 처음 로드되었을 때 코드가 한 번 실행됩니다.

저의 구체적인 사용 사례는 Android AppCompat 라이브러리에서 DayNight 기능을 활성화하고 싶은 경우입니다.또, 다음의 정적 초기화 블록에 코드를 넣도록 지시되어 있습니다.Application학급.

어떤 관점에서는 Kotlin의 는 Java 클래스의 정적 부분과 동일합니다.특히, 그것들은 수업의 첫 사용 전에 초기화되어 있으며, 이를 통해 당신은 그들의initJava 스태틱 이니셜라이저를 대체하는 블록:

class C {
    companion object {
        init {
            //here goes static initializer code
        }
    }
}

@voddan은 오버킬이 아닙니다.실제로 이것은 Kotlin 사이트에서 제안되고 있습니다.「대응하는 클래스가 로드(해결)되었을 때, 컴패니언 오브젝트가 초기화됩니다.Java 스태틱 이니셜라이저의 의미와 일치합니다.」객체 표현과 선언의 의미 차이입니다.

companion object  { 
    // Example for a static variable
    internal var REQUEST_CODE: Int? = 500

    // Example for a static method
    fun callToCheck(value: String): String {
        // your code
    }
}

클래스 내의 객체 선언에는 companion 키워드를 사용하여 마킹할 수 있습니다.이 아래에서는 java static 메서드나 변수와 같은 것을 사용할 수 있습니다.LIke 클래스명methodname 또는 classname.variablename

언급URL : https://stackoverflow.com/questions/37262468/static-initialisation-block-in-kotlin

반응형