我是kotlin的新手,無法找出此問題。不能使用具有委託屬性的自定義獲取者
我有一個不可空的屬性,可能會或可能不會被使用。 因此,我已委派它在一個懶惰的方式,以便它在需要時被初始化。
private val labelAnimator: ObjectAnimator by lazy {
ObjectAnimator.ofFloat(this, "floatingLabelFraction", 0f, 1f)
}
不過,我還需要設置每一個被訪問時該對象的某些屬性。
fun getLabelAnimator(): ObjectAnimator {
labelAnimator.duration = (if (isFloatingLabelAnimating) 300 else 0).toLong()
return labelAnimator
}
但我不能使用自定義getter,因爲該屬性被委託。 如何以最佳方式實現此目標?
雖然這不能回答你的問題,但我強烈建議不要在吸氣劑中改變屬性。這違反了最少驚喜的原則。 –