lombok(笔记)
目的:减轻Java代码的臃肿
导入Lombok依赖
- 地址上网查
@Getter和Setter
为字段生成Getter和Setter方法,可以注解到字段或者到类上(注解在类上会为所有的字段生成Getter和Setter方法),默认是public级别,可以修改访问级别
@NonNull
为字段赋值时,如果传的参数为null,则会抛出空异常
@NoArgsConstructor
生成一个无参构造方法。当类中有final字段没有被初始化时,编译器会报错,此时可以用@NoArgsConstructor(force = true),然后就会为没有初始化的final字段设置默认值,对有有约束的字段,不会生成检查或分配,因此,正确初始化这些字段前,这些约束无效
@RequiredArgsConstructor
生成构造方法(可带参数或者不带参数),如果带参数,这参数只能是以final修饰未初始化的字段,或者是以@NonNull注解的未经初始化的字段。@RequiredArgsConstructor(staticName = "of")会生成一个of的静态方法,并把构造方法私有
@AllArgsConstructor
生成一个全参数的构造方法
@ToString
生成toString()方法,默认情况下它会按顺序(以逗号为分割)打印类名称以及每个字段。可以设置不包含那些字段,可以指定一个或多个@ToString(exclude = "id")/@ToString(exclude = "{"id","name"}")
@EqualsAndHashCode
生成hashCode()和equals()方法,默认情况下,默认情况下,它将所有非静态,非transient字段,但可以通过在可选的exclude参数中排除更多的字段,或者通过of参数中命名,他们来准确指定希望使用那些字段。
排除字段exclude
@EqualsAndHashCode( exclude = {"password","salt"})
指定要包含的字段
@EqualAndHashCode(of = {"id","phone","password"})
@Data
@Date包含了@ToString,@EqualsAndHashCode,@Getter/@Setter和@RequiredargsConstructor的功能
@Value
@value将字段都变成不可变类型,使用final修饰,同时包含@ToString,@EqualsAndHashCode,@AllArgsConstruor,@Getter(注意只有getter,没有setter)
@Log
生成log对象,用于记录日志,可以通过topic属性设置getLogger(String name)方法的参数,例如@Log4j(topic = "xxx.xxx"),默认类的全限定名
@SneakyThrows
@Synchronized
加上同步锁
@Cleanup
主要用来修饰IO流的相关类,会在finally代码块中对该资源close()
@Getter(lazy = true)
标注字段为懒加载字段,懒加载字段在创建对象时不会初始化,而是第一次访问时才会初始化,后面再次访问不会重复初始化
@Wither
提供给final字段赋值的一种方法
@Builder