Lombok
Lombok背景介绍
Project Lombok makes java a spicier language by adding ‘handlers’ that know how to build and compile simple, boilerplate-free, not-quite-java code.(Lombok通过一些“处理程序”,可以使java变得简洁、快速)
Lombok使用方法
Lombok能以简单的注解形式来简化代码,提高开发人员的开发效率。例如开发中经常使用的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时就会出现大量的getter/setter方法,这些显得很冗长也没有太多的技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。
Lombok通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。
Lombok的使用跟引用jar包一样,可以在官网下载jar包,也可以使用maven添加依赖:
<dependency>
<groupId>org.projectlombok</groudId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
Lombok工作原理分析
从上面注解的具体应用可以看出,在Lombok的使用过程中,只需要添加相应的注解,无需再为此写任何代码。
核心之处就是对于注解的解析上。JDK5引入了注解的同时,也提供了两种解析方式。
- 运行时解析
- 编译时解析
Lombok的优缺点
优点
- 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率。
- 让代码变得简洁,不用过多的去关注相应的方法。
- 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等
缺点
- 不支持多种参数构造器的重载
- 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度。
本文参考:Lombok中注解的具体用法