Kotlin getter setter 无字段
Kotlin getter setter without field
我想创建一个没有字段的 getter 和 setter。目前我有这个功能:
/** Only the color component will be considered, alpha has no effect */
fun setCircleColor(@ColorInt color : Int){
circlePaint.color = ColorUtils.setAlphaComponent(color, circlePaint.alpha)
}
理想情况下我想要这样的东西
circleColor: @ColorInt Int
get(){
return circlePaint.color
set(value){
circlePaint.color = ColorUtils.setAlphaComponent(color, circlePaint.alpha)
}
如您所见,我不想将 circleColor 存储在 var 中,但仍可以调用
myView.color = 0xFFaaaaaa
而不是 myView.setColor(0xFFaaaaaa)
。这可能吗?
我建议按照您打算的方式实施它:
var circleColor: Int
@ColorInt get() = circlePaint.color
set(@ColorInt color) {
circlePaint.color = ColorUtils.setAlphaComponent(color, circlePaint.alpha)
}
我想创建一个没有字段的 getter 和 setter。目前我有这个功能:
/** Only the color component will be considered, alpha has no effect */
fun setCircleColor(@ColorInt color : Int){
circlePaint.color = ColorUtils.setAlphaComponent(color, circlePaint.alpha)
}
理想情况下我想要这样的东西
circleColor: @ColorInt Int
get(){
return circlePaint.color
set(value){
circlePaint.color = ColorUtils.setAlphaComponent(color, circlePaint.alpha)
}
如您所见,我不想将 circleColor 存储在 var 中,但仍可以调用
myView.color = 0xFFaaaaaa
而不是 myView.setColor(0xFFaaaaaa)
。这可能吗?
我建议按照您打算的方式实施它:
var circleColor: Int
@ColorInt get() = circlePaint.color
set(@ColorInt color) {
circlePaint.color = ColorUtils.setAlphaComponent(color, circlePaint.alpha)
}