Lombok 使用记录
官方文档地址
介绍
项目lombok是一个帮助消除冗余代码的java工具库
lombok 常用注解
注解 | 作用 |
---|---|
@Data | 注解在类上,提供类所有属性的 getting 和 setting方法,此外还提供了equals,canEqual,hashCode,toString方法 |
@Setter | 注解在属性上,为属性提供setting方法 |
@Setter | 注解在属性上,为属性提供 getting 方法 |
@Log4j | 注解在类上,为类提供一个属性名为log的 log4j日志对象 |
@NoArgsConstructor | 注解在类上,为类提供一个无参的构造方法 |
@AllArgsConstructor | 注解在类上,为类提供一个全参的构造方法 |
@Cleanup | 可以关闭流 |
@Builder | 被注解的类加个构造者模式 |
@Synchronized | 加个同步锁 |
@SneakyThrows | 等同于try/catch 捕获异常 |
@NonNull | 给参数加个这个注解,如果参数为null会抛出空指针异常 |
@Value | 注解和@Data类似,区别在于它会把所有成员变量默认定义为private,final修饰,并且不会生成set方法 |
@ToString | 需让lombok为您生成一个toString方法 |
@EqualsAndHashCode | 从对象的字段生成hashCode和equals实现 |
@With | 注解在属性上,根据传入参数clone 一个对象,如果参数一直返回原对象 |
val | 非注解,局部final变量 |
var | 非注解,局部变量 |
@Accessors(chain = true) | 链式构建 |
lomok进阶使用
链式构建@Accessors(chain = true)
PushLogDTO pushLogDTO = new PushLogDTO().setCode("test").setDetail("推送记录");
Builder模式 @Builder
PushLogDTO pushLogDTO = PushLogDTO.builder().code("test").detail("推送详情").build();
@Singular 一同使用
@Singular private Set<String> occupations;
//单独增加collection一个参数的方法
public BuilderExampleBuilder occupation(String occupation) {
if (this.occupations == null) {
this.occupations = new java.util.ArrayList<String>();
}
this.occupations.add(occupation);
return this;
}
//增加整个collection参数的方法
public BuilderExampleBuilder occupations(Collection<? extends String> occupations) {
if (this.occupations == null) {
this.occupations = new java.util.ArrayList<String>();
}
this.occupations.addAll(occupations);
return this;
}
静态构建方式@RequiredArgsConstructor(staticName = “construct”)
PushLogDTO pushLogDTO= PushLogDTO.construct();