Lombok优雅编码
Lombok:可以省略许多不必要的的代码,例如:getter/setter/toString、构造、equals、hashCode等
@Data = get + set + equal + canEqual + hashCode + toString
@Setter
@Getter
@Slf4j 注解在 类 上;为类提供一个 属性名为 log 的日志对象,提供默认构造方法。
@AllArgsConstructor 注解在 类 上;为类提供一个全参的构造方法
@NoArgsConstructor 注解在 类 上;为类提供一个无参的构造方法。
@EqualsAndHashCode 注解在 类 上, 可以生成 equals、canEqual、hashCode 方法。
@NonNull 注解在 属性 上,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常
@Cleanup 这个注解用在 变量 前面,可以保证此变量代表的资源会被自动关闭
@ToString 这个注解用在 类 上,可以生成所有参数的 toString 方法,还会生成默认的构造方法
@RequiredArgsConstructor 这个注解用在 类 上,使用类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法。
@Value 这个注解用在 类 上,会生成含所有参数的构造方法,get 方法,此外还提供了equals、hashCode、toString 方法。
@SneakyThrows 这个注解用在 方法 上,可以将方法中的代码用 try-catch 语句包裹起来,捕获异常并在 catch 中用 Lombok.sneakyThrow(e) 把异常抛出,可以使用 @SneakyThrows(Exception.class) 的形式指定抛出哪种异常
@Synchronized 这个注解用在 类方法 或者 实例方法 上,效果和 synchronized 关键字相同