The closest thing to Java’s static fields is a companion object. You can find the documentation reference for them here: https://kotlinlang.org/docs/reference/object-declarations.html#companion-objects
Your code in Kotlin would look something like this:
class Foo {
companion object {
lateinit var instance: Foo
}
init {
instance = this
}
}
If you want your fields/methods to be exposed as static to Java callers, you can apply the @JvmStatic
annotation:
class Foo {
companion object {
@JvmStatic lateinit var instance: Foo
}
init {
instance = this
}
}