lombok版本:1.18.2
注解
@AllArgsConstructor
作用
生成包含所有字段的构造器
参数
* staticName : 不为空的话,生成一个静态方法返回实例,并把构造器设置为private
1 |
|
生成:
1 |
|
- access : 构造器访问权限修饰符,默认public
@Builder
作用
生成构建者(Builder)模式
例子:
1 |
|
生成:
1 |
|
参数
-
builderMethodName : 创建构建器实例的方法名称
-
buildMethodName:构建器类中创建构造器实例的方法名称
-
builderClassName:构造器类名
-
toBuilder:生成toBuilder方法
例子
1 |
|
@Cleanup
作用
在变量上声明\@Cleanup,生成的代码会把变量用try{}包围,并在finallly块中调用close()
例子
1 |
|
生成后:
1 |
|
参数
- value:被在finally块中调用的方法名,方法体不能带有参数,默认为close
@Data
作用
生成所有字段的getter、toString()、hashCode()、equals()、所有非final字段的setter、构造器,相当于设置了 \@Getter \@Setter \@RequiredArgsConstructor \@ToString \@EqualsAndHashCode
例子
1 |
|
生成:
1 |
|
@Delegate
@EqualsAndHashCode
作用
生成hashCode()、equals(),效果见\@Data
参数
-
callSuper:是否调用父类的hashCode(),默认:false
-
doNotUseGetters:是否不调用字段的getter,默认如果有getter会调用。设置为true,直接访问字段,不调用getter
-
exclude:此处列出的任何字段都不会在生成的equals和hashCode中使用。
-
of:与exclude相反,设置of,exclude失效
-
onParam:添加注解,参考\@Getter#onMethod
@Generated
作用
这个注解似乎没有实在的作用,就是标记这个类、字段、方法是自动生成的
@Getter
作用
生成getter、写在类上会生成该类下所有字段的getter。写在某个字段上就作用与该字段
参数
- onMethod:把需要添加的注解写在这
例子
1 |
|
生成:
1 |
|
- value:访问权限修饰符
@NoArgsConstructor
作用
生成无参数构造器
参数
-
access:访问权限修饰符
-
force:为true时,强制生成构造器,final字段初始化为null
-
onConstructor:添加注解,参考\@Getter#onMethod
@NonNull
作用
空检查
例子
1 |
|
生成后:
1 |
|
@RequiredArgsConstructor
作用
生成必须初始化字段的构造器,比如带final、\@NonNull
例子
1 |
|
生成后:
1 |
|
@Setter
作用
生成Setter
参数
-
onMethod:在方法上添加中注解,见\@Getter#onMethod
-
onParam:在方法的参数上添加注解,见\@Getter#onMethod
-
value:访问权限修饰符
@Singular
作用
这个注解和\@Builder一起使用,为Builder生成字段是集合类型的add方法,字段名不能是单数形式,否则需要指定value值
例子
1 |
|
生成:
1 |
|
@SneakyThrows
作用
用try{}catch{}捕捉异常
例子
1 |
|
生成后:
1 |
|
@Synchronized
作用
生成Synchronized(){}包围代码
例子
1 |
|
生成后:
1 |
|
@ToString
作用
生成toString()方法
@val
作用
变量声明类型推断
例子
1 |
|
生成后:
1 |
|
@Value
作用
把类声明为final,并添加toString()、hashCode()等方法,相当于 \@Getter \@FieldDefaults(makeFinal=true, level=AccessLevel.PRIVATE) \@AllArgsConstructor \@ToString \@EqualsAndHashCode.
例子
1 |
|
生成后:
1 |
|
@var
作用
和val一样,官方文档中说区别就是var不加final修饰,但测试的效果是一样的
Experimental注解
在lombok.experimental包下
@Accessors
作用
默认情况下,没什么作用,需要设置参数
参数
-
chain:为true时,setter链式返回,即setter的返回值为this
-
fluent:为true时,默认设置chain为true,setter的方法名修改为字段名
@Delegate
作用
代理模式,把字段的方法代理给类,默认代理所有方法
参数
-
types:指定代理的方法
-
excludes:和types相反
例子
1 |
|
生成后:
1 |
|
@ExtensionMethod
作用
拓展方法,向现有类型”添加”方法,而无需创建新的派生类型。有点像kotlin的扩展函数。
例子
1 |
|
生成后:
1 |
|
输出:
1 |
|
@FieldDefaults
作用
定义类、字段的修饰符
参数
-
AccessLevel:访问权限修饰符
-
makeFinal:是否加final
@FieldNameConstants
作用
默认生成一个常量,名称为大写字段名,值为字段名
参数
-
prefix:前缀
-
suffix:后缀
例子
1 |
|
生成后:
1 |
|
@Helper
作用
方法内部的类方法暴露给方法使用
测试时,maven编译不通过。
@NonFinal
作用
设置不为Final,\@FieldDefaults和\@Value也有这功能
@PackagePrivate
作用
设置为private,\@FieldDefaults和\@Value也有这功能
@SuperBuilder
@Tolerate
@UtilityClass
@Wither
作用
生成withXXX方法,返回类实例
例子
1 |
|
生成后:
1 |
|
转自:https://segmentfault.com/a/1190000016111422