lombok_精简POJO.docx
立即下载
نسر الصحراء
2025-03-28
注解
代码
字段
Lombok
访问器
创建
编译
public
67.5 KB
Lombok项目 允许你修改编译好的字节码。首先,我会详细描述下Lombok的特征,让你有初步的了解。在这篇文章的第二部分,我会描述怎样去扩展它来生成你的代码。
注解处理
Java的第五个版本介绍了注解的概念,代码元数据可以在编译时或运行时处理。不幸的是,在JDK5里,编译时注解分成了两个步骤。首先,你必须运行apt可执行文件处理注解,可以是创建或修改源文件,然后使用javac编译你的源代码。这不是最好的方法,所以在Java6移除了apt同时让javac能够管理注解,让处理注解能顺畅地在简单的一步计算完成。这也是Lombok采用的途径。
Lombok项目
Lombok核心特征是你需要用注解来创建代码,目的是减少你要写的样板代码的数量。它为你提供如下注解,这可能会永远改变代码(不是你的生活):
@Getter 和 @Setter: 为你的字段创建getter和setter
@EqualsAndHashCode: 实现equals()和hashCode()
@ToString: 实现toString()
@Data: 使用上面四个注解的特征
@Cleanup: 关闭流
@Synchronized: 对象同步
@SneakyThrows: 抛出异常
例如,当你学习OO(面向对象)方式来编码,你经常是把你的字段设置为私有同时编写公共的访问器来访问这些字段:
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
因为这种写法是很烦人的,一些(并非全部)IDE会有一个功能来生成访问器。它有一些缺点:
如果你移除一个字段,相应地你要手动移除访问器。
它会把你的真实代码和样板代码弄得混乱
结果:要花费精力在一个长的类里去检查这个字段是不是已经有访问器存在了
此外,手动创建访问器是比较容易出错的:有一次,我花费几个小时在同事写的代码里找一个bug,最后发现是setter写错了。
因为getter/setter仅仅是字段的元数据,Lombok的立场就是把这些方法看成这样:Java里的元数据都通过注解来管理。看下面
注解/代码/字段/Lombok/访问器/创建/编译/public/
注解/代码/字段/Lombok/访问器/创建/编译/public/

-->