Lombok使用@Tolerate实现冲突兼容

Lombok使用@Tolerate实现冲突兼容

场景

使用Lombok能够减少程序员的重复工作提高工作效率,而Lombok的注解基本是基于标准的(如,标准的Builder模式),而实际开发的时候有时候为了实现某些能力会对标准实现做一些变形,而这个时候Lombok的标准实现就会无法满足需求。

例如,这样一个场景:

使用@Builder对一个DTO实现一个构造器,但是在做Json反序列化的时候发生错误,原因就是缺少无参公共的构造函数,而手动写一个无参构造函数的时候编译错误,就是和@Builder冲突,虽然标准的@Builder没法是需要私有化构造函数的,但是在某些场景下我们需要对这种标准变形,这个时候Lombok提供了@Tolerate实现对冲突的兼容。

Sample

@Data
@Builder
public class User {

    @Tolerate
    public User() {}

    private String name;

    private int age;

}

注意

  • @Tolerate这个功能还处于实验阶段(我写这篇blog的时候),使用需要注意后续版本更新的变化
  • 尽量使用标准的实现,如果没有必要可以不用这种方式
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,588评论 1 45
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,830评论 2 9
  • 初到吊罗山,那是几年前的事了。 偶然一次,到了陵水。表哥便邀一同前往吊罗山,第一次听到这山名,感觉很是陌生...
    梨萌魚阅读 548评论 0 6
  • 01 昨天,我跟青瓜,一起去参加几个好朋友组织的游玩! 这次活动,说实话,我们已经计划了好久了,最后还是缺了两三个...
    小_虹_帽阅读 523评论 2 2