lombok官网点击打开链接
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again. Early access to future java features such as val
, and much more.
官网解释一个可插拔于编辑器和构建工具的第三方库,不再书写get set equals hashcode 等方法,还有更多特性。
自己解释,可以放在eclipse idea maven gradle java等等
特性 只看stable稳定版本
val | ||
var | ||
@NonNull | 非空 | 示例 |
@CleanUp | 资源自动关闭 | |
@Getter(layzer=true)/@Setter | 自动get,set延迟获取 | |
@ToString | 字符串转换 | |
@EqualsAndHashCode | 相等和hashcode重写 | |
@NoArgsConstructor,@RequireArgConstructor and@AllArgsConstructor | 自动构造生成 | |
@Data | ||
@Value | ||
@Builder | ||
@SneakyThrows | ||
@Synchorized | ||
@Log | ||
examprimental | ||
maven依赖
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
</dependencies>
使用lombok项目的方法很简单,分为四个步骤:
1)在需要自动生成getter和setter方法的类上,加上@Data注解
2)在编译类路径中加入lombok.jar包
3)使用支持lombok的编译工具编译源代码(关于支持lombok的编译工具,见“四、支持lombok的编译工具”)
4)编译得到的字节码文件中自动生成了getter和setter方法
lombok工作原理
javac就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在javac运行的时候得到调用。
1)javac对源代码进行分析,生成一棵抽象语法树(AST)
2)运行过程中调用实现了"JSR 269 API"的A程序
3)此时A程序就可以完成它自己的逻辑,包括修改第一步骤得到的抽象语法树(AST)
4)javac使用修改后的抽象语法树(AST)生成字节码文件
总结
使用lombok虽然能够省去手动创建setter和getter方法的麻烦,但是却大大降低了源代码文件的可读性和完整性,降低了阅读源代码的舒适度。