Intereting Posts
Линии рисования из ViewModel TornadoFX Kotlin, как тестировать (int) массив Как я получаю HandlerMethod соответствует HttpServletRequest в фильтре Пытается создать простой recyclerView в Kotlin, но адаптер не применяется должным образом Android Studio / Kotlin – неверная ошибка «Метод переопределения должен вызвать супер» Как я могу получить ценность от наблюдаемых Как написать правильный генератор HTML в Котлине @ Прежде чем аннотация игнорируется котлином в эспрессо-тесте? Возьмите последний элемент n в Котлине Gradle Build не работает с новым Gradle 3.0.0 kotlin внутренний класс can not доступ к закрытому методу снаружи? Как я могу построить SQL-запрос с динамическим именем столбца в пространственной постоянной библиотеке В тестовом пакете не читаются классы Котлина, определенные в основном пакете Библиотека Glide java.lang.NoClassDefFoundError В чем разница между crossinline и noinline в Котлине?

Kotlin – Как «запоздать» var переопределил интерфейс?

У меня есть интерфейс UserManager

 interface UserManager { var user:User /* ... */ } 

и класс UserManagerImpl , который реализует UserManager

 class UserManagerImpl : UserManager { override var user: User // = must provide an User object /* ... */ } 

Вот моя проблема:

Как разрешить другому классу устанавливать User в UserManager() в любое время ( т. UserManager() Не предоставлять начальный объект User вместе с объявлением свойства и разрешить другому классу создавать и предоставлять экземпляр User )?

Примите во внимание, что

  1. Интерфейсы не могут иметь свойства lateinit
  2. Я хочу, чтобы User был непустым значением, поэтому свойство nullable ( User? )
  3. Я хочу использовать полевой доступ вместо объявления и использовать setUser(User) и getUser() в интерфейсе

Solutions Collecting From Web of "Kotlin – Как «запоздать» var переопределил интерфейс?"