Это зависит от того, что вы хотите.
Например, если все, что вам нужно, использует ArrayList<QuestionAnswerObject>
, вам вообще не нужно lateinit
:
var questionAnswerListOfObjects = ArrayList<QuestionAnswerObject>()
будет достаточно
Если вы хотите получить от Bundle
или от чего-то еще - вы должны инициализировать его перед использованием .
В основном ключевое слово lateinit
используется только для того, чтобы сказать «эй, компилятор, У меня есть переменная, она еще не инициализирована, но я обещаю, что она будет инициализирована, прежде чем я ее использую, поэтому, пожалуйста, пометьте ее как ненулевое поле ".
Так что если вы действительно хотите использовать lateinit
просто инициализируйте это свойство ранее, например добавьте после setContentView
questionAnswerListOfObjects = ArrayList<QuestionAnswerObject>()