Kotlin 伴生对象(Companion)
在本文中,您将借助示例学习在Kotlin程序中创建和使用伴生对象。
class Person { fun callMe() = println("I'm called.") } fun main(args: Array<String>) { val p1 = Person() //使用对象p1调用callMe()方法 p1.callMe() }
在这里,我们创建了 Person 类的一个对象 p1 来调用 callMe ()方法。
但是,在 Kotlin,您也可以通过使用类名(即本示例中的 Person)来调用 callMe ()方法。为此,您需要通过使用 companion 关键字标记对象声明对象声明来创建一个伴生对象。
示例:伴生对象
class Person { companion object Test { fun callMe() = println("I'm called.") } } fun main(args: Array<String>) { Person.callMe() }
运行该程序时,输出为:
I'm called.
在程序中,Test对象声明用关键字标记companion以创建伴生对象。因此,可以callMe()通过使用以下类的名称来调用method:
Person.callMe()
伴生对象的名称是可选的,可以省略。
class Person { //省略了伴生对象的名称 companion object { fun callMe() = println("I'm called.") } } fun main(args: Array<String>) { Person.callMe() }
如果您熟悉Java,您可能会将伴随对象与静态方法关联起来(即使它们的内部工作方式完全不同)
伴生对象可以访问该类的私有成员。因此,它们可用于实现工厂方法模式。