android – Kotlin自定义获取执行方法调用

前端之家收集整理的这篇文章主要介绍了android – Kotlin自定义获取执行方法调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为了提高对SharedPreferences.Editor的调用的可读性,我想使用一个Kotlin变量,每当我需要一个新的SharedPreferences.Editor时,它将执行’getSharedPreferences.edit()’.最初我打算使用这样的东西:
val editPreferences: SharedPreferences.Editor = Application.getSharedPreferences("preferences",Context.MODE_PRIVATE).edit()

但后来我被告知,’editPreferences’将保留对同一编辑器的引用,当我每次调用’editPreferences’时我真正希望它创建一个新的编辑器.

如果使用自定义getter,每次都会返回一个新的编辑器吗?像这样的东西:

val editPreferences: SharedPreferences.Editor 
    get() = Application.getSharedPreferences("preferences",Context.MODE_PRIVATE).edit()

仍在使用Kotlin并且不确定get()方法是否会引用编辑器而不是创建新的编辑器.

解决方法

第二个属性声明适合您的需要:它有一个 custom getter,因此获取属性值将始终执行getter,并且不存储该值(该属性没有 backing field).

你可能会被等号get()= …弄糊涂,但对于等效的getter形式它只是一个single-expression shorthand

val editPreferences: SharedPreferences.Editor 
    get() { 
         return Application
              .getSharedPreferences("preferences",Context.MODE_PRIVATE)
              .edit()
    }

猜你在找的Android相关文章