Jaki jest odpowiednik statycznego bloku inicjalizacyjnego w Kotlinie?
Rozumiem, że Kotlin nie ma statycznych rzeczy. Szukam czegoś z równoważną semantyką - kod jest uruchamiany raz przy pierwszym załadowaniu klasy.
Mój konkretny przypadek użycia polega na tym, że chcę włączyć funkcję DayNight z biblioteki Android AppCompat, a instrukcje mówią, aby umieścić kod w bloku statycznej inicjalizacji Application
klasy.
java
static
kotlin
initializer
Marcin Koziński
źródło
źródło
object
deklaracją wymaga, aby faktycznie gdzieś go użyć z powodu leniwej inicjalizacji.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 } }
Deklarację obiektu wewnątrz klasy można oznaczyć słowem kluczowym companion, a pod nim możemy użyć metody statycznej java i zmiennej. LIke nazwa klasy.nazwa metody lub nazwa klasy.nazwa_zmiennej
źródło