【问题标题】:Kotlin data class with interface boilerplate带有接口样板的 Kotlin 数据类
【发布时间】:2018-07-23 23:39:26
【问题描述】:

Kotlin 中的数据类非常适合消除 Java pojo 的大部分样板;但是当一个数据类镜像一个接口时,这两个声明仍然显得多余。举个例子吧。

interface MyInterface {
    val foo: String
    val bar: String
    val baz: String
    val qux: String
}

data class MyImplementation(
    override val foo: String,
    override val bar: String,
    override val baz: String,
    override val qux: String
) : MyInterface

有没有什么简写方式可以消除这种重复代码,即告诉 Kotlin 接口中的每个val 都应该由数据类中相同的val 实现?

【问题讨论】:

  • 那么首先创建界面的意义何在。只使用没有接口的数据类。我在这里错过了什么吗?
  • 我想使用数据类作为委托。
  • 您是否尝试过为您的接口方法使用默认实现?它们的使用是有限的,但对于您的情况来说可能已经足够了。
  • @jaco0646 您可能想向我们展示您想要与代表一起完成的工作。尽管现在没有消除这种冗余的捷径,但至少可以改进委派。

标签: interface kotlin boilerplate data-class


【解决方案1】:

默认情况下,接口中的所有属性都是抽象的,因此它们必须由继承者实现(声明)。根据this links的说法,这个功能在2015年就没有计划好了,现在好像还没有实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-24
    • 2022-08-18
    • 2016-06-08
    • 2020-03-12
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多