我有这个接口,我希望它能够像数据类一样使用复制方法。所以我将抽象复制方法定义为。
interface Fizzbuzz {
fun clone(params: WhatShouldBeDefinedHere?): Fizzbuzz
}
因此实现将是
data class Foobar(...): Fizzbuzz {
override fun clone(...): Fizzbuzz {
return this.copy(...)
}
}
但是需要什么样的参数呢?
它将参数作为data class
的字段。例如,如果您有以下数据类:
data class FooBar(field1: String, field2: Int)
该方法具有签名:
fun copy(field1: String = this.field1, field2: Int = this.field2)
参考:https://kotlinlang.org/docs/data-classes.html#copying