Static initialisation block in Kotlin
From some point of view, companion object
s in Kotlin are equivalent to static parts of Java classes. Particularly, they are initialized before class' first usage, and this lets you use their init
blocks as a replacement for Java static initializers:
class C {
companion object {
init {
//here goes static initializer code
}
}
}
@voddan it's not an overkill, actually this is what suggested on the site of Kotlin: "A companion object is initialized when the corresponding class is loaded (resolved), matching the semantics of a Java static initializer." Semantic difference between object expressions and declarations
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
}
}
An object declaration inside a class can be marked with the companion keyword.And under this we can use like java static method and variable.LIke classname.methodname or classname.variablename