web-dev-qa-db-fra.com

Bloc d'initialisation statique à Kotlin

Quel est l'équivalent d'un bloc d'initialisation statique dans Kotlin?

Je comprends que Kotlin est conçu pour ne pas avoir de choses statiques. Je cherche quelque chose avec une sémantique équivalente - le code est exécuté une fois lorsque la classe est chargée pour la première fois.

Mon cas d'utilisation spécifique est que je souhaite activer la fonctionnalité DayNight de la bibliothèque Android AppCompat et les instructions dire de mettre du code dans le bloc d'initialisation statique de la classe Application.

56
Marcin Koziński

D'un certain point de vue, companion objects dans Kotlin équivaut à des parties statiques de classes Java. En particulier, ils sont initialisés avant la première utilisation de la classe, ce qui vous permet d'utiliser leurs blocs init en remplacement des initialiseurs statiques Java:

class C {
    companion object {
        init {
            //here goes static initializer code
        }
    }
}
91
hotkey
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
    }
}

Une déclaration d'objet à l'intérieur d'une classe peut être marquée avec le mot-clé d'accompagnement.Et sous celle-ci, nous pouvons utiliser comme méthode statique Java et variable.LIke nomclasse.nomhôte ou nomclasse.nomblase

0
abhilasha Yadav