我有一个包含以下属性的抽象类
var items: List<I> = listOf()
set(value) {
field = value
onDataChanged()
}
Run Code Online (Sandbox Code Playgroud)
在我的扩展类中,我现在想在items调用上述setter代码之前重写setter 来做其他事情。如果可能,这可能吗?
您必须open在父类中声明您的字段
open var items: List<I> = listOf()
set(value) {
field = value
onDataChanged()
}
Run Code Online (Sandbox Code Playgroud)
在子类中,您将其重写为:
override var items: List<Int>
get() = super.items
set(value) {
super.items = value
//Your code
}
Run Code Online (Sandbox Code Playgroud)
这样,您实际上是在创建没有后备字段的属性,而只是访问真正的父级items字段。
| 归档时间: |
|
| 查看次数: |
937 次 |
| 最近记录: |