array - java from kotlin
Bloqueo de inicialización estática en Kotlin (2)
¿Cuál es el equivalente de un bloque de inicialización estática en Kotlin?
Entiendo que Kotlin está diseñado para no tener cosas estáticas. Estoy buscando algo con semántica equivalente: el código se ejecuta una vez cuando se carga la clase por primera vez.
Mi caso de uso específico es que quiero habilitar la función DayNight de la biblioteca de Android AppCompat y
las instrucciones
dicen que coloquemos algún código en el bloque de inicialización estática de la clase de
Application
.
Desde algún punto de vista, los
companion object
en Kotlin son equivalentes a partes estáticas de las clases Java.
En particular, se inicializan antes del primer uso de la clase, y esto le permite usar sus bloques de
init
como reemplazo de los inicializadores estáticos de 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
}
}
Una declaración de objeto dentro de una clase se puede marcar con la palabra clave compañera. Y bajo esto podemos usar como método estático java y variable. Ike classname.methodname o classname.variablename