这一定是个愚蠢的问题,但我对Kotlin来说真的很新,我找不到任何解决方案.
如何声明类字段?就像我们可以在java中一样:
protected SharedPreferences mSharedPreferences;
Run Code Online (Sandbox Code Playgroud)
后来在onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Run Code Online (Sandbox Code Playgroud)
现在我可以在任何我想要的地方使用它(在这个基本活动的子类中).
我试着在Kotlin做同样的事情:
protected var sharedPreferences : SharedPreferences
Run Code Online (Sandbox Code Playgroud)
并在onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Run Code Online (Sandbox Code Playgroud)
但我得到一个警告:"财产必须初始化或是抽象的"
Ale*_*lov 163
如果您想在构造函数外部初始化属性,那么您可能正在寻找延迟初始化的属性.使用lateinit
修饰符声明属性,这将允许跳过其他必需的初始化程序,并使属性访问失败,异常,直到为其分配了一些有意义的值:
protected lateinit var sharedPreferences: SharedPreferences
Run Code Online (Sandbox Code Playgroud)
Tom*_*ard 11
将其从亚历山大·乌达洛夫(Alexander Udalov)的答案中删除,以提高知名度。对于可为空的属性:
protected var sharedPreferences : SharedPreferences? = null
...然后为它分配一个值。
归档时间: |
|
查看次数: |
30369 次 |
最近记录: |