Как сохранить ссылку на объект класса singleton в сопутствующем объекте, Kotlin
Код, который я хочу преобразовать, выглядит следующим образом;
public class AndroidLauncher extends AndroidApplication {
public static AndroidLauncher androidLauncher;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
androidLauncher = this;
}
}
Что это за сгенерированный Android-код?
class AndroidLauncher : AndroidApplication() {
protected override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
androidLauncher = this
}
companion object {
var androidLauncher: AndroidLauncher
}
}
Этот код дает мне ошибку, которая есть;
Свойство должно быть инициализировано или быть абстрактным
Я разрабатываю игру с помощью libgdx, поэтому я буду использовать этот подход, чтобы использовать объект Game из любого места, где я захочу. Это одноэлементный класс, поэтому он не пропустит память.
1 ответ
Решение
Использование lateinit
чтобы указать, что поле будет инициализировано позже.
companion object {
lateinit var androidLauncher: AndroidLauncher
}