Skip to content

0.0.1Alpha-04发布

Pre-release
Pre-release

Choose a tag to compare

@1250422131 1250422131 released this 12 Aug 08:23
· 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)
}