
上QQ阅读APP看书,第一时间看更新
Companion objects
Companion objects are declared within a class by utilizing the companion and object keywords. You can use functions that are static within a companion object:
class Printer {
companion object DocumentPrinter {
fun printDocument() = println("Document printing successful.")
}
}
fun main(args: Array<String>) {
Printer.printDocument() // printDocument() invoked via companion object
Printer.Companion.printDocument() // also invokes printDocument() via
// a companion object
}
Sometimes, you may want to give an identifier to a companion object. This can be done by placing the name after the object keyword. Consider the following example:
class Printer {
companion object DocumentPrinter { // Companion object identified by DocumentPrinter
fun printDocument() = println("Document printing successful.")
}
}
fun main(args: Array<String>) {
Printer.DocumentPrinter.printDocument() // printDocument() invoked via
// a named companion object
}