前言:
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。
Lombok 官方稳定版本注解地址: https://projectlombok.org/features/all
Idea 配置:
Idea 添加Lombok 插件, 配置: File -->> Setting -->> Plugin -->> Marketplace 搜索 lombok 选中 install 重启 Idea 即可
Idea 配置注解生效:
File -->> Setting -->> Build,Execution,Deployment -->> Compiler -->> Annotation Processors 如下图所示,选中
Lombok 常用注解以及作用
-
@Getter/@Setter:
- 作用类上,生成所有成员变量的getter/setter方法;
- 作用于成员变量上,生成该成员变量的getter/setter方法。
- 可以设定访问权限及是否懒加载等。
- 官网地址: https://projectlombok.org/features/GetterSetter
-
@Data:
- 作用于类上,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
- 官网地址: https://projectlombok.org/features/Data
- 官方解释: All together now: A shortcut for @ToString, @EqualsAndHashCode, @Getter on all fields, and @Setter on all non-final fields, and @RequiredArgsConstructor!
-
@ToString:
- 作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。
- 官网地址: https://projectlombok.org/features/ToString
-
@EqualsAndHashCode:
- 作用于类,覆盖默认的equals和hashCode
- 官网地址: https://projectlombok.org/features/EqualsAndHashCode
-
@NonNull
- 主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
- 官网地址: https://projectlombok.org/features/NonNull
-
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
- @NoArgsConstructor:生成无参构造器;
- @RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;
- @AllArgsConstructor:生成全参构造器
-
@Builder :
- 作用于类上,将类转变为建造者模式
- 官网地址: https://projectlombok.org/features/Builder
-
@SneakyThrows: 非常Nice
- 可以对受检异常进行捕捉包装并抛出 RuntimeException 异常, 毕竟 RuntimeException 在程序运行时时不需要进行显式捕获的, 避免 try{}catch 影响代码可读性~
- 官方文档: https://projectlombok.org/features/SneakyThrows
-
@Cleanup
- 在IO流中,使用Cleanup关闭资源
- 官方地址: https://projectlombok.org/features/Cleanup
- 其他,也可以使用 try-with-resources 来关闭资源 【推荐,毕竟是 Java 提供的功能】