サーチ…


前書き

オブジェクトは特別な種類のクラスで、 objectキーワードを使用して宣言することができます。オブジェクトはJavaのSingleton(デザインパターン)に似ています。これはjavaの静的な部分としても機能します。 Javaからkotlinに切り替える初心者は、静的な、またはシングルトンの代わりに、この機能を大幅に使用できます。

Javaの静的メソッド/フィールドのrepalcementとして使用

object CommonUtils {

    var anyname: String ="Hello"

    fun dispMsg(message: String) {
        println(message)
    }
}

他のクラスから、変数と関数をこのように呼び出すだけです:

CommonUtils.anyname
CommonUtils.dispMsg("like static call")

シングルトンとして使用する

実際にはKotlinオブジェクトは単なるシングルトンです。その主な利点は、シングルトンのインスタンスを取得するためにSomeSingleton.INSTANCEを使用する必要がないことです。

javaでは、シングルトンは次のようになります。

public enum SharedRegistry {
    INSTANCE;
    public void register(String key, Object thing) {}
}

public static void main(String[] args) {
    SharedRegistry.INSTANCE.register("a", "apple");
    SharedRegistry.INSTANCE.register("b", "boy");
    SharedRegistry.INSTANCE.register("c", "cat");
    SharedRegistry.INSTANCE.register("d", "dog");
}

kotlinでは、等価コードは次のようになります。

object SharedRegistry {
    fun register(key: String, thing: Object) {}
}

fun main(Array<String> args) {
    SharedRegistry.register("a", "apple")
    SharedRegistry.register("b", "boy")
    SharedRegistry.register("c", "cat")
    SharedRegistry.register("d", "dog")
}

それはobvoiuslyあまり冗長な使用することです。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow