Kotlin の静的拡張メソッド 質問する

Kotlin の静的拡張メソッド 質問する

Kotlin で静的拡張メソッドを定義するにはどうすればいいでしょうか? これは可能なのでしょうか? 現在、以下に示すような拡張メソッドがあります。

public fun Uber.doMagic(context: Context) {
    // ...
}

上記の拡張機能はインスタンス上で呼び出すことができます。

uberInstance.doMagic(context) // Instance method

しかし、以下のように静的メソッドにするにはどうすればよいでしょうか。

Uber.doMagic(context)         // Static or class method

ベストアンサー1

を実現するにはUber.doMagic(context)コンパニオンオブジェクトUber(コンパニオンオブジェクトの宣言は必須です):

class Uber {
    companion object {}
}

fun Uber.Companion.doMagic(context: Context) { }

おすすめ記事