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
.
D'un certain point de vue, companion object
s 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
}
}
}
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