lombok一个帮助简化代码的工具
一、lombok有啥用?
可以替代代码中的getter和setter方法,虽然eclipse/idea自带的setter、getter代码生成也不需要我们手动的去敲写,但是使用@Setter @Getter这样的注解,能够使我们的代码看上去更加的简洁、优雅。
二、lombok具体有啥功能?
具体释义:
-
val:用在局部变量前面,相当于将变量声明为final 例如:val lists = new ArrayList();
-
@NonNull:给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException);
-
@Cleanup:自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成try-finally这样的代码来关闭流。虽然自JDK7以来,原生引入了try–with–resource结构,但还是不如@Cleanup来的简洁。
-
@Getter/@Setter:用在属性上,再也不用自己手写setter和getter方法了,还可以指定访问范围;
-
@ToString:用在类上,可以自动覆写toString方法,当然还可以加其他参数,例如@ToString(exclude=”id”)排除id属性,或者@ToString(callSuper=true, includeFieldNames=true)调用父类的toString方法,包含所有属性;
-
@EqualsAndHashCode:用在类上,自动生成equals方法和hashCode方法;
-
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:用在类上,自动生成无参构造和使用所有参数的构造函数以及把所有@NonNull属性作为参数的构造函数,如果指定staticName = “of”参数,同时还会生成一个返回类对象的静态工厂方法,比使用构造函数方便很多;
-
@Data:注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于POJO类十分有用;
-
@Value:用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法;
-
@Builder:用在类、构造器、方法上,为你提供复杂的builder APIs,让你可以像如下方式一样调用Person.builder().name(“Adam Savage”).city(“San Francisco”).job(“Mythbusters”).job(“Unchained Reaction”).build();更多说明参考Builder;
-
@SneakyThrows:自动抛受检异常,而无需显式在方法上使用throws语句;
-
@Synchronized:用在方法上,将方法声明为同步的,并自动加锁,而锁对象是一个私有的属性 l o c k 或 lock或 lock或LOCK,而java中的synchronized关键字锁对象是this,锁在