Junior — Middle
What are the consequences of declaring a companion object inside a class?
sobes.tech AI
Answer from AI
In Kotlin, a companion object inside a class serves to declare members that belong to the class itself rather than its instances. This is analogous to static members in Java.
Implications of declaring a companion object inside a class:
- Allows having static methods and properties accessible via the class name without creating an instance.
- The companion object is a singleton, meaning it exists as a single instance.
- Interfaces can be implemented, and the companion object can be used for factory methods.
- Declaring a companion object creates an additional class in the bytecode, which may slightly increase the size.
Example:
class MyClass {
companion object {
fun create(): MyClass = MyClass()
}
}
val instance = MyClass.create() // call without creating an instance
Thus, a companion object simplifies the organization of static members and improves code structure.