当前位置: 首页 > news >正文

网站建设外包兼职百度招聘

网站建设外包兼职,百度招聘,网站制作价格便宜,网站权重如何速度增加文章目录介绍Lombok原理常用注解DataGetterSetterToStringEqualsAndHashCodeNoArgsConstructorAllArgsConstructorRequiredArgsConstructorAccessors(chain true)遇到的问题谨慎使用Data问题总结Builder和Data不能共用解决介绍 官网:https://projectlombok.org/ …

文章目录

    • 介绍
    • Lombok原理
    • 常用注解
      • @Data
      • @Getter
      • @Setter
      • @ToString
      • @EqualsAndHashCode
      • @NoArgsConstructor
      • @AllArgsConstructor
      • @RequiredArgsConstructor
      • @Accessors(chain = true)
    • 遇到的问题
      • 谨慎使用@Data
        • 问题
        • 总结
      • @Builder和@Data不能共用
        • 解决

介绍

官网:https://projectlombok.org/

Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写getter、setter或equals方法,只要有一个注解,你的类就有一个功能齐全的构建器、自动记录变量等等。
可以精简我们的代码的,让开发人员把精力放在业务上。

Lombok原理

Java的编译分为以下⼏个阶段:

解析与填充符号表->注解处理->分析与字节码⽣成->⽣成⼆进制class⽂件。

Lombok 使⽤的是 JDK 6 实现的 JSR 269: Pluggable Annotation Processing API (编译期的注解处理器),它是在编译期时把 Lombok 的注解代码,转换为常规的 Java ⽅法⽽实现注⼊。
在编译期阶段,当 Java 源码被抽象成语法树 (AST) 之后,Lombok 会根据⾃⼰的注解处理器动态的修改AST,增加新的代码 (节点),在这⼀切执⾏之后,再通过分析⽣成了最终的字节码 (.class) ⽂件,这就是Lombok 的执⾏原理

常用注解

@Data

为我们的实体类自动生成get、set、hashcode、equals 、toString方法 与不带参数的构造方法。
它是一个混合注释,它包含了@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode的功能。

@Getter

生成get方法

@Setter

生成set方法

@ToString

生成toString方法

@EqualsAndHashCode

生成equals和hashCode方法

@NoArgsConstructor

生成无参构造

@AllArgsConstructor

生成有参构造

@RequiredArgsConstructor

生成有参构造,对于标有@NonNull注解的字段,还将生成一个显式的null检查

@Accessors(chain = true)

指定set方法通过this返回自己本身,以便于进行级联操作的执行。

遇到的问题

总结日常开发使用过程中遇到的问题

谨慎使用@Data

问题

子类不能完全代表父类
@EqualsAndHashCode注解里有个字段callSuper,它的默认值是false,意思是在重写时,不会将父类的字段写到equals里;而@Data这个注解由于包含了@EqualsAndHashCode,所以它也有这个特性,即子类强制实现了重写equals和hashCode,并且只重写了自己的属性,这时,问题就来了,当两个对象比较时,如果子类属性相同而父类属性不同,结果也为true,这是非常严重的bug。

总结

在使用@Data时,我们尽量把 @EqualsAndHashCode(callSuper = true)加上,因为你不加,它相当于是false;或者杜绝使用@Data,而用@Getter,@Setter,@ToString代替它。
具体还要取决于您的类层次结构,需要根据具体情况进行检查。

@Builder和@Data不能共用

由于添加@Builder会将@Data让类缺失无参构造器,因为很多框架都会调⽤⽆参构造去创建对象,所以会报错。

解决

方法一,
在无参构造函数上加上@Tolerate即可解决,目的是让Lombok在⽣成类的时候,对指定的构造函数不感知。

方法二,
直接使用无参构造器+有参构造器的方式,类上添加注解@RequiredArgsConstructor 来构建有参,添加注解@NoArgsConstructor来构建无参构造器,即可解决。

http://www.hkea.cn/news/308594/

相关文章:

  • 公司网站如何做宣传百度视频推广怎么收费
  • 淄博市 网站建设报价郑州seo外包阿亮
  • 网络服务商是指什么网站优化排名工具
  • 网站优化的分析比较好的品牌策划公司有哪些
  • 国外比较好的资源网站电商运营推广是做什么的
  • 佛山房地产网站建设seo实战培训王乃用
  • 如何做可以赚钱的网站关键词如何快速排名
  • 深圳品牌做网站公司有哪些百度app推广
  • 重庆建设行业信息网站搜狗登录入口
  • 同仁行业网站建设报价北京做的好的seo公司
  • 陕西自助建站做网站郑州外语网站建站优化
  • 小型企业网站系统cilimao磁力猫最新版地址
  • 铁岭网站建设移动网站广东网站seo
  • 网站模板插件sem和seo
  • 用wordpress制作网站模板沈阳seo
  • 优化一个网站多少钱宜昌网站seo
  • 刚做的网站怎么才能搜索到枸橼酸西地那非片功效效及作用
  • 罗湖区网站公司专业模板建站
  • 哪有备案好的网站国产系统2345
  • 网站开发怎么让别人看到最新营销模式有哪些
  • ssm网站开发源码百度推广多少钱一个月
  • 手游门户网站建设appstore关键词优化
  • 齐河网站开发seo服务内容
  • 北京微信网站建设费用想卖产品怎么推广宣传
  • 网站上线的步骤厦门网站推广公司哪家好
  • 网站做app的软件有哪些百度一下你就知道下载
  • 界面设计的重要性百度seo关键词排名推荐
  • 股票做T网站直播营销
  • 北京手机网站建设公司排名技术优化seo
  • wordpress可爱的主题seo优化教程