Kotlin学習ノート:静的方法

1732 ワード

1、静的クラスのすべての方法は静的方法で、例えばツールクラス、定数プール、など、直接;クラス名の前のclassをobjectに置き換えます.
    object DataProviderManager {
    fun registerDataProvider(provider: DataProvider) {
        // ……
    }

    val allDataProviders: Collection
        get() = // ……
}

Kotlinでは、Objectによって宣言されたオブジェクトは、実際には単一のパターンのオブジェクトであり、objectキーワードの後に常に名前が付いています.変数宣言のように、オブジェクト宣言は式ではなく、付与文の右側では使用できません.Objectキーワードによる単一オブジェクトの宣言
このオブジェクトを参照するには、その名前をそのまま使用します.
DataProviderManager.registerDataProvider(……)

2.スタティックメソッドKotlinでのスタティックメソッドは、クラスの内部にcompanion object{}で包むために必要なスタティック関数として、「伴生オブジェクト」で実現できます.
class MyClass {
    companion object Factory {
        fun create(): MyClass = MyClass()
    }
}

派生オブジェクトのメンバーは、クラス名のみを修飾子として使用することによって呼び出すことができます.
val instance = MyClass.create()

伴生オブジェクトの名前は省略できますが、この場合は名前Companionを使用します.
class MyClass {
    companion object {
    }
}

val x = MyClass.Companion