任何技术的出现都是为了解决某一类问题,Lombok也毫无例外。Lombok提供了一组有用的注释,用来消除Java类中的大量‘样板代码’,也就是臃肿代码,进而提高开发效率,降低代码维护成本。但是世界上没有绝对完美的东东,Lombok自然也有小瑕疵,Lombok的缺点在于需要IDE插件支持,需要团队统一规范,另外某些注解生成的隐性实现可能导致问题跟踪调试困难。
Lombok实现原理
自从Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在javac运行的时候得到调用。
Lombok就是一个实现了"JSR 269 API"的程序。在使用javac的过程中,它产生作用的具体流程如下:
-
javac对源代码进行分析,生成一棵抽象语法树(AST)
-
javac编译过程中调用实现了JSR 269的Lombok程序
-
此时Lombok就对第一步骤得到的AST进行处理,找到Lombok注解所在类对应的语法树 (AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点
-
javac使用修改后的抽象语法树(AST)生成字节码文件
常用注解:
@Setter :注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter :使用方法同上,区别在于