什么时候构建/创建/编译字符串?

When is a string built / created / compiled?

这些字符串什么时候会得到它们的值,它们应该都产生相同的值吗?

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, "")
        }
    }
}

这些值什么时候会改变? 代码编译时、我阅读它们时或其他时间?

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

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

相同