博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kotlin使用mapstruct(三)
阅读量:6036 次
发布时间:2019-06-20

本文共 1546 字,大约阅读时间需要 5 分钟。

hot3.png

这节主要介绍下@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.添加映射

@Mapperabstract 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

你可能感兴趣的文章
mysql通过配置文件进行优化
查看>>
省级网站群建设关注点
查看>>
工作第四天之采集资源
查看>>
我的友情链接
查看>>
H3CS-WLAN、H3CSE-Security认证考试
查看>>
5.0中redis-cli的集群管理测试
查看>>
TFS 2012研发管理能力(5)
查看>>
四种LaunchMode及其使用场景
查看>>
通过vbs脚本备份数据-本地到异地
查看>>
tomcat介绍和安装
查看>>
UIButton的titleLabel不同状态字体判断
查看>>
我的友情链接
查看>>
杨泽业:wordpress在Nginx/Apache/IIS中的伪静态规则
查看>>
Python 中使用 MongoDB 存储爬虫数据
查看>>
WindowsServer 2008 AD搭建FTP隔离用户
查看>>
lmdb
查看>>
大文件如何传输,大文件的传输方式有哪些?
查看>>
docker的持久化存储和共享存储和网络架构
查看>>
撕掉普通程序员的标签,这才是真正的大数据工程师!
查看>>
Windows下安装Sqlmap过程及遇到的问题
查看>>