您好,我已经通过kotlin文档,但没有找到任何东西。我想要做的是有一个通用的thar必须是一个数据类,如
data class MyData(val pop1:Long,val pop2:String,...)
fun class MyGenericClass<T : isDataClass>(o : T){
// This is the important part
fun useCopy(value : Long) = t.copy(pop1 = value)
}
我真正需要实现的是能够以通用方式使用数据类的复制功能(pop1将始终是我的数据类的成员)
提前致谢
答案 0 :(得分:0)
您应该考虑为该特定问题使用接口。只需委托实现中的数据类copy
。
data class MyData(val pop1: Long, val pop2: String) : Pop1Data {
override fun copy(pop1: Long) {
copy(pop1 = pop)
}
}
interface Pop1Data {
fun copy(pop1: Long)
}
class MyGenericClass<T : Pop1Data>(private val o: T) {
// This is the important part
fun useCopy(value: Long) = o.copy(value)
}