Interface 带有接口样板的Kotlin数据类

Interface 带有接口样板的Kotlin数据类,interface,kotlin,boilerplate,data-class,Interface,Kotlin,Boilerplate,Data Class,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 va

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
实现?

默认情况下,接口中的所有属性都是抽象的,因此必须由继承者实现(声明)。据了解,这项功能在2015年还没有计划好,而且看起来还没有实现。

那么首先创建界面有什么意义呢。只使用数据类而不使用接口。我是否遗漏了什么?我想将数据类用作委托。您是否尝试过对接口方法使用默认实现?它们的使用是有限的,但对于您的情况来说可能已经足够了。@jaco0646您可能希望向我们展示您试图通过代理完成的任务。尽管现在没有简捷的方法来消除这种冗余,但至少可以改善授权。