Kotlin:覆写二传手

时间:2018-08-06 10:20:55

标签: kotlin setter

我有一个包含以下属性的抽象类

var items: List<I> = listOf()
    set(value) {
        field = value
        onDataChanged()
    }

在我的扩展类中,我现在想覆盖items的setter以便在调用上述setter代码之前做更多的事情。如果可以的话,这可能吗?

1 个答案:

答案 0 :(得分:6)

您必须在父类中将字段声明为> Hash[*array][:a][:b] #=> [:c, :d]

open

在子类中,您将其重写为:

open var items: List<I> = listOf()
    set(value) {
        field = value
        onDataChanged()
    }

通过这种方式,您实际上是在创建没有后备字段的属性,而只是访问真正父母的override var items: List<Int> get() = super.items set(value) { super.items = value //Your code } 字段。