我已经定义interface
为
interface Manga {
fun title(): String
fun rating(): String
fun coverUrl(): String
val id: String
}
我想在不影响接口可变性的情况下更改set id。因此,我创建了一个扩展函数来设置id字段。
fun Manga.setId(id_: String): Manga {
return object : Manga {
override fun title() = [email protected]()
override fun rating() = [email protected]()
override fun coverUrl() = [email protected]()
override val id: String
get() = id_
}
}
如果我想将字段添加到漫画界面,则必须修改扩展功能。
有没有一种方法可以在创建新对象时仅覆盖id而无需修改扩展功能?或通过其他任何方式达到相同的效果。
使用委托
fun Manga.setId(id_: String): Manga {
return object : Manga by this {
override val id: String
get() = id_
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句