温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Lombok的原理是什么

发布时间:2021-06-21 18:42:31 来源:亿速云 阅读:301 作者:Leah 栏目:云计算

这篇文章给大家介绍Lombok的原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

以 idea 为例,直接在工具中搜索 Lombok 插件,然后安装它。安装完成后重启 idea 开发工具即可。

Lombok的原理是什么

Lombok的原理是什么

接下来,我们需要在使用 Lombok 的项目中引入 Lombok 的 jar 包。Maven 的 POM.xml 中引入以下配置:

Lombok的原理是什么

然后在项目中的 get/set 就可以被我们替换成下面的代码:

Lombok的原理是什么

Lombok 有非常多的注解,下面是这些注解的解释说明。

Lombok的原理是什么

Lombok的原理是什么

Lombok 的 val 可能用的人比较少,但其实它才是最值得推荐使用的一个,类似 JavaScript 的 val。

Lombok的原理是什么

@NonNull 的用法也很常见。

Lombok的原理是什么

@Cleanup 关闭流的做法。

Lombok的原理是什么

@ToString 的用法。

Lombok的原理是什么

@EqualsAndHashCode 的用法。

Lombok的原理是什么

最常用的 @Data 的用法。

Lombok的原理是什么

还有最常用的 @Builder 的用法。

Lombok的原理是什么

更多关于 Lombok 注解的用法,我就不一一列举了,大家可以看我上面的那个注解说明。

最后我说一下 Lombok 的原理。通过它的注解,我们可以看到,Lombok 的注解都定义了 @Retention 为 RetentionPolicy.RUNTIME 的代码。这样它只能在运行时通过反射来获取注解值,使得运行时代码效率降低。其次,如果想在编译阶段利用注解来进行一些检查,对用户的某些不合理代码给出错误报告,反射的使用方法就无能为力了。好在,我们现在有了 JSR 269,它可以让我们在 Javac 的编译期利用注解做这些事情。所以我们发现核心的区分是在运行期还是编译期。

在 Lombok 的处理流程中,Javac 解析成抽象语法树之后(AST),Lombok 根据自己的注解处理器,动态的修改 AST,增加新的节点(所谓代码),最终通过分析和生成字节码。

自从Java 6起,javac 就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该 API,就能在 javac 运行的时候得到调用。

关于Lombok的原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI