Должно быть, это глупый вопрос, но я действительно новичок в Котлине, и я не нашел решения.
Как объявить поле класса? Как мы можем иметь это в java:
protected SharedPreferences mSharedPreferences;
И позже в onCreate()
:
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Теперь я могу использовать его везде, где хочу (в подклассах этого базового действия).
Я пытаюсь сделать то же самое в Котлине:
protected var sharedPreferences : SharedPreferences
И в onCreate()
:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
Но я получаю предупреждение: «Имущество должно быть инициализировано или быть абстрактным»
Если вы хотите инициализировать свойство вне конструктора, то вы можете искать свойства с заглавной инициализацией . lateinit
свойство с lateinit
модификатора lateinit
, который позволит пропустить требуемый иначе инициализатор и приведет к отказу доступа к ресурсу с исключением, пока ему не будет присвоено какое-либо значимое значение:
protected lateinit var sharedPreferences: SharedPreferences