Kotlin之数据类和接口的注解

Java中设计实体类时一般以继承的方式在基类中存放公共属性和方法
Kotlin中则一般以接口方式来实现
data class实现的接口 接口中成员上的注解可以在data class重写属性时 限制重写属性

import org.bson.types.ObjectId
import org.springframework.data.annotation.*
import java.time.LocalDateTime
import javax.validation.constraints.NotNull


/**
 * 基础模型
 *
 * @property id ID
 * @property createdBy 创建者
 * @property lastModifiedBy 最后修改者
 * @property createdDate 创建日期
 * @property lastModifiedDate 最后修改日期
 * @property isDeleted 是否已删除
 */
interface Base {
    @get:Id
    val id: ObjectId?

    @get:CreatedBy
    val createdBy: String?

    @get:LastModifiedBy
    val lastModifiedBy: String?

    @get:CreatedDate
    val createdDate: LocalDateTime?

    @get:LastModifiedDate
    val lastModifiedDate: LocalDateTime?

    @get:NotNull
    val isDeleted: Boolean
}

data class A(
    override val id: ObjectId? = null,

    override val createdBy: String? = null,

    override val lastModifiedBy: String? = null,

    override val createdDate: LocalDateTime? = null,

    override val lastModifiedDate: LocalDateTime? = null,

    override val isDeleted: Boolean
) : Base

数据类A中的override属性受到接口Base中相应成员上的注解的限制 可用于Jsr303验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值