from array java static kotlin initializer

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