lombok里的@Accessors注解
lombok里的@Accessors注解
Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果。
有三个属性
-
fluent
–一个布尔值。如果属实,对于吸气pepper
只是pepper()
,并且设置器pepper(T newValue)
。此外,除非指定,否则chain
默认为true。
默认值:false。(官网) - fluent是决定生成的get/set方法要不要set/get前缀 (大佬解释)
-
chain
–一个布尔值。如果为true,则生成的setterthis
而不是返回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方法
与平常默认生成是一样的
在看看加上 @Accessors(chain = true)注解后编译的代码
跟data注解生成不同的是set方法返回的是当前对象
参考资料
1、https://projectlombok.org/features/experimental/Accessors
2、 https://blog.****.net/qq_35275233/article/details/91347901