Repository navigation
0.0.1Alpha-04发布
Pre-release
Pre-release
·
38 commits
to master
since this release
去除DeepCopy注解
现在给任何需要深拷贝的类都可以注解未@EnhancedData来实现deepCopy函数。
但是目前仍然不支持对可空类型深拷贝,会直接复用引用,这还在计划开发中。
@EnhancedData对Data类适配较好,对非Data类可能有一些问题,后续会独立出一个DeepCopy注解。
@EnhancedData
data class AData(val name: String, val title: String, val bData: BData)
@EnhancedData
data class BData(val doc: String, val content: String)生成后
data class _ADataCopyFun(
var name : kotlin.String,
var title : kotlin.String,
var bData : com.imcys.deeprecopy.demo.BData,
)
fun AData.deepCopy(
name : kotlin.String = this.name,
title : kotlin.String = this.title,
bData : com.imcys.deeprecopy.demo.BData = this.bData,
): AData {
return AData(name, title, bData.deepCopy())
}
fun AData.deepCopy(
copyFunction:_ADataCopyFun.()->Unit): AData{
val copyData = _ADataCopyFun(name, title, bData)
copyData.copyFunction()
return this.deepCopy(copyData.name, copyData.title, copyData.bData)
}