Kotlin扩展功能和界面

斯尼希尔

我已经定义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而无需修改扩展功能?或通过其他任何方式达到相同的效果。

IR42

使用委托

fun Manga.setId(id_: String): Manga {
    return object : Manga by this {
        override val id: String
            get() = id_
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在界面中模拟 Kotlin 扩展功能?

来自分类Dev

通过界面扩展功能

来自分类Dev

Kotlin扩展功能

来自分类Dev

如何加载从表单和界面扩展的类?

来自分类Dev

可变属性的Kotlin扩展功能

来自分类Dev

Kotlin Android扩展和菜单

来自分类Dev

在Java代码中使用kotlin扩展功能

来自分类Dev

界面无法同时扩展锚点和按钮的类型

来自分类Dev

Kotlin:如何使用扩展功能扩展枚举类

来自分类Dev

具有接收器功能的Kotlin扩展功能

来自分类Dev

LocalDateTime扩展功能和智能投射

来自分类Dev

Kotlin等效于扩展和减少

来自分类Dev

Scala功能界面特征

来自分类Dev

什么时候应该选择Kotlin扩展功能?

来自分类Dev

Gradle构建中未解析的Kotlin扩展功能的引用

来自分类Dev

如何在类上使用Kotlin扩展功能?

来自分类Dev

如何在Kotlin中创建视图扩展功能

来自分类Dev

如何从Kotlin的内部类[AsyncTask]访问扩展功能?

来自分类Dev

Kotlin MediaType.parse(“ something”)是错误。移至扩展功能

来自分类Dev

通过在Kotlin中使用扩展功能来组织协程

来自分类Dev

如何在Kotlin中创建对类进行操作的扩展功能?

来自分类Dev

Gradle构建中未解析的Kotlin扩展功能的引用

来自分类Dev

Phalcon PHP扩展和覆盖“更新”和“插入”功能

来自分类Dev

使用自动布局和界面生成器在垂直方向上扩展/隔开的屏幕元素

来自分类Dev

带有可扩展列表和带有说明的图标的温泉用户界面

来自分类Dev

Chrome扩展程序用户界面

来自分类Dev

扩展嵌套打字稿界面

来自分类Dev

Chrome扩展程序用户界面

来自分类Dev

无法将在iOS中通用编写的Kotlin扩展功能用作Swift扩展

Related 相关文章

热门标签

归档