何时建立/创建/编译字符串?

时间:2018-11-15 14:45:19

标签: android string kotlin sharedpreferences companion-object

这些字符串何时会获得其值,它们都应产生相同的值吗?

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 :(得分:1)

str1str3属性是在创建StringFactory.Companion时分配的,并且永远不会更改其值。

str2中,该属性将在您每次访问userSettings时获取。没有用于存储该值的字段。它的行为基本上与getUserKey()相同。