一、前言
最近,看到项目中使用了@Accessors(chain=true)这个注解,还挺好用的。它是lombok中的注解,下面来详细说明一下
二、源码
打开@Accessors源码可以看到:
1、@Accessors作用
从源码中可以看到,@Accessors的作用是:
- 当属性字段在生成setter和getter方法时,做一些设置
- @Accessors既可以作用在类上,又可以作用在具体的字段上。当它作用在类上时,修饰类中的所有字段;当它作用在具体字段上时,只对该字段有效
- 该注解共有4个属性:
① fluent:默认为false。当值为true时,对应字段的getter方法前面就没有get,setter方法前面就没有set
② chain:默认为false。当值为true时,对应字段的setter方法调用后会返回当前对象
③ prefix:该属性是一个字符串数组,当该数组有值时,表示忽略字段中对应的前缀,生成对应的getter和setter方法。比如:现在有xxName字段和yyAge字段,xx和yy分别是name和age字段的前缀。在生成getter和setter方法时,也会带上xx和yy前缀。但是,当把前缀添加到@Accessors属性中时,则可以像没有前缀那样,去调用字段的getter和setter方法
④ makeFinal:默认值为false。当值为true时,生成的getter方法为final方法
编译后文件: