kotlin使用mapstruct(三)

博客介绍了Python开发相关内容,提及2019独角兽企业招聘Python工程师标准,重点讲解了添加新业务类、添加映射并进行调用,还给出了转载来源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这节主要介绍下@AfterMapping

1.添加新的业务类

data class Apple(var appleId:Int, var appleName:String,var real:Boolean){
    constructor():this(0,"",false)
}

data class AppleDto(var appleId:Int, var appleName:String,var description:String){
    constructor():this(0,"","")
}

2.添加映射

@Mapper
abstract class AppleConverter {

    //忽略target description字段映射
    @Mapping(target = "description",ignore = true)
    abstract fun convertToDto(apple: Apple) : AppleDto
    //忽略target real字段映射
	@Mapping(target = "real",ignore = true)
    abstract fun convertToModel(appleDto: AppleDto) : Apple

     //convertToDto执行完成后手动给appleDto的description字段赋值
    @AfterMapping
    protected fun afterConvertToDto(apple: Apple, @MappingTarget appleDto: AppleDto) {
        val description = if(apple.real) "水果" else "数码"
        appleDto.description = description
    }
	//convertToModel执行完成后手动给apple的real字段赋值
    @AfterMapping
    protected fun afterConvertToModel(appleDto: AppleDto, @MappingTarget apple: Apple) {
        val real = if(appleDto.description == "水果") true else false
        apple.real = real
    }
}

3.调用一下吧

   val appleConverter = Mappers.getMapper(AppleConverter::class.java)
    val apple = Apple(1,"my apple",true)
    println(apple)
    val appleDto = appleConverter.convertToDto(apple)
    println(appleDto)
    val appleModel = appleConverter.convertToModel(appleDto)
    println(appleModel)

输出

Apple(appleId=1, appleName=my apple, real=true)
AppleDto(appleId=1, appleName=my apple, description=水果)
Apple(appleId=1, appleName=my apple, real=true)

转载于:https://my.oschina.net/weidedong/blog/1935717

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值