У меня есть поле, которое можно инициализировать во вторичном конструкторе, иначе оно будет инициализировано созданием нового объекта. Я не хочу использовать значение по умолчанию как null или создавать объект, который можно заменить объектом, переданным в конструкторе.
моя реализация:
class AggregationAdapter() {
private var _libraryFilters: FiltersFromLibrary? = null
private var libraryFilters: FiltersFromLibrary
get() {
if (_libraryFilters == null) _libraryFilters = FiltersFromLibrary()
return _libraryFilters!!
}
set(value) {
if (_libraryFilters == null) _libraryFilters = value
}
constructor(filtersFromLibrary: FiltersFromLibrary) : this() {
libraryFilters = filtersFromLibrary
}
}
Итак, я хочу узнать, насколько хорош мой путь.
Вам не нужен вторичный конструктор. Вы можете использовать инициализатор по умолчанию в основном конструкторе. Весь ваш код выше можно заменить на:
class AggregationAdapter(
private val libraryFilters: FiltersFromLibrary = FiltersFromLibrary()
) {
}
Я не думал о значении по умолчанию. Спасибо!