我有一個可以在輔助建構式中初始化的欄位,否則它將在創建新物件時進行初始化。我不想使用默認值作為 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
}
}
所以,我想知道我的方法有多好。
uj5u.com熱心網友回復:
您不需要輔助建構式。您可以在主建構式中使用默認初始化程式。您上面的所有代碼都可以替換為:
class AggregationAdapter(
private val libraryFilters: FiltersFromLibrary = FiltersFromLibrary()
) {
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456476.html
上一篇:如何使變數需要具有一定范圍的數字(比如說從1到10)為True的條件?
下一篇:操作順序如何嚴重改變代碼速度?
