Поиск…


Вступление

Объектом является особый вид класса, который может быть объявлен с использованием ключевого слова object . Объекты похожи на Singletons (шаблон дизайна) в java. Он также функционирует как статическая часть java. Начинающие, которые переключаются с java на kotlin, могут широко использовать эту функцию вместо статических или синглетонов.

Использовать в качестве репликации статических методов / полей java

object CommonUtils {

    var anyname: String ="Hello"

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

Из любого другого класса просто вызовите переменную и функции следующим образом:

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

Использовать в качестве одноэлементного

Объекты Котлина на самом деле представляют собой только одноточие. Его основным преимуществом является то, что вам не нужно использовать SomeSingleton.INSTANCE чтобы получить экземпляр singleton.

В 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");
}

В котлине эквивалентный код

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