lombok里的@Accessors注解

lombok里的@Accessors注解

Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果。

有三个属性

  • fluent–一个布尔值。如果属实,对于吸气pepper只是pepper(),并且设置器pepper(T newValue)。此外,除非指定,否则chain默认为true
    默认值:false。(官网)
  • fluent是决定生成的get/set方法要不要set/get前缀 (大佬解释)
  • chain–一个布尔值。如果为true,则生成的setter this而不是返回void
    默认值:false,除非fluent=true,然后默认值:true。(官网)
  • chain决定set方法是void类型还是返回this,进行链式set方法 (大佬解释)
  • prefix–字符串列表。如果存在,则字段必须使用任何这些前缀作为前缀。依次将每个字段名称与列表中的每个前缀进行比较,如果找到匹配项,则会删除前缀以创建该字段的基本名称。在列表中包括一个始终匹配的空字符串是合法的。对于字母字符,前缀后面的字符不能为小写字母,即,pepper即使与prefix也不匹配p,但pEpper必须是(并且表示此字段的基本名称为epper)。(官网)
  • prefix与定义属性前缀相同时且接下来的字符大写才生效,可以看源码注释或自行尝试 (大佬解释)

这里主要看看@Accessors(chain = true)这个属性

加上@data注解会生成

  • 所有属性的get和set方法
  • toString 方法
  • hashCode方法
  • equals方法

下面截图编译后的代码看看生成的get、set方法

lombok里的@Accessors注解

与平常默认生成是一样的

在看看加上 @Accessors(chain = true)注解后编译的代码

lombok里的@Accessors注解

跟data注解生成不同的是set方法返回的是当前对象

参考资料

    1、https://projectlombok.org/features/experimental/Accessors

    2、 https://blog.****.net/qq_35275233/article/details/91347901