Код: Выделить всё
// Initializes ExampleLogger.
class ExampleLoggerInitializer : Initializer {
override fun create(context: Context): ExampleLogger {
// WorkManager.getInstance() is non-null only after
// WorkManager is initialized.
return ExampleLogger(WorkManager.getInstance(context))
}
override fun dependencies(): List {
// Defines a dependency on WorkManagerInitializer so it can be
// initialized after WorkManager is initialized.
return listOf(WorkManagerInitializer::class.java)
}
}
< /code>
У меня осталось несколько вопросов. Этот код, кажется, строит объект класса. Как это должно работать, если мои синглтоны уже являются объектом Код: Выделить всё
object ExampleLogger {
lateinit var someProperty : String
fun initialize(wm : WorkManager) {
// do something
// someProperty = wm.GetSomeProperty()
}
}
class ExampleLoggerInitializer : Initializer {
override fun create(context: Context): ExampleLogger {
ExampleLogger.initialize(WorkManager.getInstance(context))
return ExampleLogger
}
Это нормально, что функция Create не возвращает новый объект, а просто инициализированный объект? Я думаю, я волнуюсь, что с помощью объекта нет ничего гарантирующего, что инициализация произошла должным образом, и код может по существу получить доступ к неонициализированному объекту.
Есть ли лучший способ справиться с этим?
Подробнее здесь: https://stackoverflow.com/questions/731 ... -vs-object
Мобильная версия