繁体   English   中英

init 块中类的原始属性 - Kotlin

[英]Primitive properties for a class in init block - Kotlin

我正在定义一个具有许多原始属性的 Kotlin 类:

class Contract (contractEntity : ContractEntity) EntityDao<ContractEntity> {
    var id : Long // <- This is a primitive datatype, needs to be initialized
    var concept : String //<- This also needs to be initialized or declared abstract

    init{
        mapFromEntity(contractEntity)
    }

    override fun mapFromEntity(entity : ContractEntity){
        id = entity.id
        concept = entity.concept
    }
}

现在,我希望使用函数mapFromEntity()初始化这些属性,但我坚持使用 init 块,因为它们没有初始化。 什么可能是实现我正在尝试的好方法?

到目前为止,最好的解决方案建议删除映射类的函数并使用构造函数参数。

class Contract (contractEntity : ContractEntity) EntityDao<ContractEntity> {
    var id = contractEntity.id
    var concept = contractEntity.concept
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM