Lombok插件使用笔记

是什么?

Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。

怎么用?

  • @Data

包含@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,基本上使用这些注解就足够了(使用时最好结合结合@EqualsAndHashCode(callSuper = true),具体查看下方注意事项)。

  • @Getter / @Setter

可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。

  • @NoArgsConstructor

无参构造

  • @AllArgsConstructor

全参构造

  • @RequiredArgsConstructor

将标记为@NoNull的属性生成一个构造器,如果运行中标记为@NoNull的属性为null,会抛出空指针异常。

  • @ToString

生成所有属性的toString()方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

使用参考:简书

  • @EqualsAndHashCode

    生成equals()方法和hashCode方法默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

更多注解使用详情请参考:lombok使用代码对比

特殊的地方

@Value不属于Lombok但是其作用可以与@Data对应,有些区别:

  • @Value有参构造,如果变量不加@NonFinal@Value会给所有的弄成final的,就只有get方法,没有set方法了。

注意点什么?

  • 使用@Data必须结合@EqualsAndHashCode(callSuper = true)

解释: lombok @EqualsAndHashCode 注解的影响

猜你喜欢

转载自blog.csdn.net/qq_28202661/article/details/102815365
今日推荐