这是我的代码:
@Module
class SharedPrefs {
@Module
companion object {
val KEY_COOKIE = "cookie"
@JvmStatic
@Provides
fun putPref(key: String, value: String?) {
val prefs = PreferenceManager.getDefaultSharedPreferences(App.context)
val editor = prefs.edit()
editor.putString(key, value)
editor.commit()
}
@JvmStatic
@Provides
fun getPref(key: String): String? {
val preferences = PreferenceManager.getDefaultSharedPreferences(App.context)
return preferences.getString(key, null)
}
@JvmStatic
@Provides
var cookie : String?
get() = getPref(KEY_COOKIE)
set(value) {
putPref(KEY_COOKIE, value)
}
}
}
Run Code Online (Sandbox Code Playgroud)
最后一个 @provides 上面的 var cookie 生成一个编译错误:
此注释不适用于没有支持字段或委托的目标成员属性
我该如何纠正?
Bar*_*ski 18
尝试使用@get:Provides而不仅仅是@Provides在var cookie.
编辑:
顺便说一句,我想我知道你的意思是什么Providing这个var,我不相信匕首会让你做到这一点。它只会从 getter 读取值并能够Nullable String在图中提供 a 。
你需要用这两个函数(setter和getter的var cookie在某种形式的包装对象),并提供该包装的匕首,而不是String?。
| 归档时间: |
|
| 查看次数: |
11409 次 |
| 最近记录: |