object Sp1 : ISharedPreferencesOwner {
override val name: String = "Sp1"
override val kv by lazy {
SpNormal.getInstance(name).getSharedPreferences()
}
// declare variables
var id by string("")
}
object Sp2 : ISharedPreferencesOwner {
override val name: String = "Sp2"
override val kv by lazy {
SpNormal.getInstance(name).getSharedPreferences()
}
// declare variables
var id by string("")
}
以下为示例代码:
这其实会导致
Sp1
和Sp2
获取的 kv 对象是同一个,进而如果有以下使用:Sp2.id
获取的值和Sp1.id
一样,为了避免这种问题,应该允许用户创建单独的SpNormal
和SpEncrypted
实例。