如何声明类字段?就像我们可以在 java 中一样:
protected SharedPreferences mSharedPreferences;
后来在onCreate()
中:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
现在我可以在任何我想要的地方使用它(在这个基础 Activity 的子类中)。
我尝试在 Kotlin 中做同样的事情:
protected var sharedPreferences : SharedPreferences
而在onCreate()
中:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
但我收到警告:“属性必须初始化或抽象”
最佳答案
如果你想在构造函数之外初始化一个属性,那么 late-initialized properties是您可能正在寻找的。使用 lateinit
修饰符声明属性,这将允许跳过其他需要的初始化程序,并使属性访问失败并出现异常,直到为其分配了一些有意义的值:
protected lateinit var sharedPreferences: SharedPreferences
关于android - 属性必须被初始化或者是抽象的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33849811/