Android 什么时候生成/创建/编译字符串?
这些字符串什么时候会得到它们的值,它们应该都产生相同的值吗Android 什么时候生成/创建/编译字符串?,android,string,kotlin,sharedpreferences,companion-object,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, "") }
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, "")
}
}
}
这些将在何时改变其价值?
当代码编译时,当我阅读它们时,或者在其他时间?在创建StringFactory.Companion时,会分配str1和str3属性,并且从不更改它们的值
在str2中,只要您访问该属性,它就会从userSettings获取该值。没有用于存储该值的字段。它的行为基本上与getUserKey相同