初始化我在科特林下面的類:科特林懶財產取決於另一個屬性在初始化
class Example {
val name: String
val lazyVar: String by lazy {
name + " something else"
}
init {
name = "StackOverflow"
}
}
我收到以下錯誤,當我使用name
在lazyVar
(即使name
懶惰初始化塊被初始化在init
塊):
變量 '姓名' 必須被初始化
一種解決方案是初始化變量在另一種方法中:
class Example {
val name: String
val lazyVar: String by lazy {
initLazyVar()
}
init {
name = "StackOverflow"
}
private fun initLazyVar(): String {
return name + " something else"
}
}
這種技術的工作,但是沒有一種方法能保持內聯懶惰塊而不是依賴於外部函數的密實度?
嘗試首先在調用init lazyVar –