mapstruct和lombok一起使用不兼容处理方法,
00-1010一、流程1。安装Lombok插件2。启用注释处理器2。原则3。原因四。解决办法
目录
00-1010(2020 . 0 . 4之后Lombok已经内置到IDEA中,旧版本请下载插件)
00-1010打开设置启用注释处理器。
OK 完事~ 可以使用了 送上常用四件套:
@Data //Generate Getter,Setter,ToString,ToString,equalsandhashcode @ allargsconstructor//全参数构造函数@NoArgsConstructor //无参数构造函数@SuperBuilder //builder,可以链式构建对象可以自行在classes里看生成的代码:.
通常,这是结束,但是.Lombok和MapStruct一起使用会有一些冲突。
说明一下:
Lombok和MapStruct是用来简化Java代码的组件。它可以通过AnnotationProcessor在编译时自动生成代码,简化了我们的日常开发。
同时,因为是编译时生成的类文件,所以在安全性和性能上比运行时工具好很多,比如BeanUtil.copy()
00-1010从Java 6开始,javac就支持“JSR269可插拔注释处理API”的规范。只要程序实现了这个API,就可以在javac运行时调用它。Lombok本质上就是这样一个实现‘JSR 269 API’的程序。在使用javac的过程中,其功能的具体过程如下:
c分析源代码,并生成抽象语法树(AST)。运行时,它调用实现‘JSR 269 API’的lombok程序。此时lombok对第一步得到的AST进行处理,找到@Data注释所在类对应的语法树(AST),然后修改语法树(AST),添加getter和setter方法定义的对应树节点。javac使用修改后的抽象语法树(AST)来生成。
00-1010因为都是AnnotationProcessor在编译时生成的类文件,那么MapStruct就会使用对象中的get和set方法,然后get和set方法就需要lombok来生成。所以我们需要让这两个工作序列保持空白。
在1.18.16之前添加路径,00-1010 lombok
在lombok 1.18.16之后,要添加路径,必须使用lombok-mapstruct-binding插件。
带着用新的代替旧的想法,我选择了第二个
关于Lombok和MapStruct集成的细节,本文就到这里了。有关Lombok和MapStruct的更多信息,请搜索以前关于流行IT的文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。