Возможно ли иметь NPE, если переменная инициализируется lateinit?
1 / lateinit var pbar: ProgressBar
2 / pbar = findViewById (R.id.pbar_login)
3 / сделать вызов API, pbar.visibility = View.VISIBLE
4 / нажмите и уничтожьте действие (при условии, что все виды также будут уничтожены)
5 /
override fun onPostExecute() {
if (pbar != null) { // warning: pbar != null is always true
pbar.visibility = View.GONE // NPE??
}
}
Вопросы:
1) Можно ли получить NPE, если я не проверю - если (pbar! = Null)?
2) Тот же вопрос, если переменные генерируются через синтетическое расширение, будет ли какой-нибудь NPE?
Я прошел этот вопрос, в данном случае мой следующий вопрос:
Существуют ли какие-либо передовые практики, позволяющие избегать NPE для представлений, связанных с переменными в деятельности, фрагментах или обзоре переработчика?