Когда строится / создается / компилируется строка? - PullRequest
0 голосов
/ 15 ноября 2018

Когда эти строки получат свое значение, и все они будут иметь одинаковое значение?

class StringFactory{
    companion object{
        val str1 = App.shared.userSettings.getString(key, "")

        val str2: String
        get(){
            return App.shared.userSettings.getString(key, "")
        }

        val str3 = getUserKey()
        fun getUserKey():String {
            return App.shared.userSettings.getString(key, "")
        }
    }
}

Когда они изменят свою стоимость? Когда код компилируется, когда я читаю их или в другое время?

1 Ответ

0 голосов
/ 15 ноября 2018

Свойства str1 и str3 назначаются при создании StringFactory.Companion и никогда не меняют их значения.

В str2 свойство будет получать значение от userSettings каждый раз, когда вы к нему обращаетесь. Там нет поля для хранения этого значения. Это в основном ведет себя так же, как getUserKey().

...