Lombok 简要介绍

背景

最近因为项目使用到了lombok,然后自己做了一个PPT。总结了一部分知识。现在将PPT的内容抽取出来作为一篇博客。

基本介绍

Lombok可以减少JOPO对象的一些代码编写。如下面的对象,这种get和set方法主要是面向对象为了封装。但是其实也没做什么特别的事情。这种代码其实可以简洁一点。
这里写图片描述
使用Lombok后代码就会如下:
这里写图片描述
这样代码看起来就简洁了很多了。而且Lombok的功能还是比较强大的。有挺多的注解给我们使用,来帮助我们减少一些代码的编写。
常用的注解如下:

@Getter
@Setter
@ToString
@NotNull
@Data
@EqualAndHashCode
@NoArgsConstructor
@AllArgsConstructor

高级注解如下:

@CleanUp
@Synchronized
@SneakyThrows
@Log
@Slf4j
等效代码
@CleanUp
public void testCleanUp(){
    try{
        @CleanUp ByteArrayOutputStream baos =new ByteArrayOutputStream();
        System.out.println(baos.toString());
    }
}

等同于

public void testCleanUp(){
    try{
     // 代码
    }finally{
        baos.close();
    }
}

@CleanUp 对自动添加上对流的关闭操作

原理

自从Java6起,Javac就支持了”JSR 269 Pluggable Annotation Processing” API 规范,只要
程序实现了该API,就能在Javac运行的时候得到调用
1.Javac对源代码进行分析,生成一颗抽象语法树(AST)
2.运行过程中调用实现了”JSR 269 API”的 某 程序
3.此时某程序就可以完成自己的逻辑,包括修改第一步骤得到的抽象语法树
4.Javac使用修改后的抽象语法树(AST)生成字节码文件
这里写图片描述

总结

Lombok的原理很简单,就是在java编译器build的时候,lombok的解析器会去扫描代码,找出添加过注解的代码然后修改抽象语法树,然后剩下的事情由编译器继续做。所以我们的代码,在编译后在class文件里面就已经可以看到lombok给我们动态添加的代码了。

参考链接

Lombok 官网:https://www.projectlombok.org/
lombok介绍:https://yq.aliyun.com/articles/59972
https://www.cnblogs.com/tabCtrlShift/p/9076559.html
https://www.e-learn.cn/content/java/1007833

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值